Why is backpropagation used for finding the loss gradient?
If you know that $f(x) = wx + b$, then you also know that $\frac{\partial f}{\partial b} = 1$.  The function LossGradient does not use that information, and would estimate it by evaluating the function $f$. Then it computes the loss. In general, it computes $f$ and $Loss$ once for every learnable parameter.
Backpropagation uses knowledge about the function being optimized to be more efficient. This means first evaluating $f$ once, then evaluating $Loss$ once, then updating all of your parameters. This efficiency may not matter to you when you have a small number of parameters, but it will make a huge difference if $f$ has hundreds of millions, or hundreds of billions of parameters.
It's not that an approach like yours is never useful (see derivative-free optimization), it's just that if you have extra information, using it is helpful.