Agreed, and that is where a lot of small businesses end up in trouble with Google - by hiring the SEO provider they can afford, and that often means one that doesn't know or care what they are doing wrong.
$300-$500 is not unheard of for small business SEO, particularly a local business. The problem, I think, is how "small business" is defined when it comes to online marketing. If a company has only a few people or lower revenues, it is "small" by real world standards - but that doesn't matter if the site is competing online with huge companies that are in the same niche, marketing-wise. For example, a hardware store may only be competing with other "mom & pop" stores locally, but they still have to compete with Walmart, HomeDepot, TruValue, Lowes, etc online. Those all have been around a long time, have strong reputations & branding, and as a result have tons of links. It isn't impossible to rank among them or even above, but it is going to take a great deal of time and the best possible SEO & promotion.
This is why a lot of SEOs don't quote a flat rate. Getting a site about "bamboo handled solar powered grass trimmers" to rank well for all possible search terms is much easier than for a site about "lawn tools". SEO should be priced according to the level of competition.
If you think about all that is involved with doing SEO right, and then try to apply an hourly dollar value to it, $500 gets used up pretty quickly. Even if a site only has 5 or 6 pages and is not a total mess, there is at least an hour or two of analyzing and improving the site itself, just on the first go around. Those adjustments will usually have to be tweaked throughout a campaign. Even if you can get someone to do that at super-cheap hourly developer rates, it runs out quickly. A larger or more complicated site will require more, obviously.
If the SEO is going to be doing any content work and link building, you have the cost of the creative work which is not going to be cheap for good stuff, and the time to track down possible link sources and do whatever is needed to get those links. Even if the link builder is going the easier, riskier route of things like directory submissions, they still need to know what they are doing well enough to not do more harm than good.