There really is no "right" answer. The shelters don't run for free. Electrcity costs money, water costs money, buildings cost money, staff costs money, vets cost money, improvements, maintenance, dog and cat food, etc. How long does 300 bucks keep a dog alive for?
Time are tight, money to them is down from municipalities, and surrenders are up because people can't keep their pets.
If they're too selective, they aren't helping animals, I don't know any in our area that are contracted with local muni's to take in strays that aren't absolutely bursting at the seams. If they charge too much to offset costs, people will just dump animals, I guess at least they'll get money when the city brings them in as strays. and if they don't charge, then they can't afford to house any animals. So what's the right answer?