What’s really happening is two things. First, companies typically don’t like paying people lots of money (even if they are great at blowing millions on other mindless things). Second, these companies do not understand that their unwillingness to hire expensive people is causing months of bug-chasing and monkey-patching in their products.
When your organization is under the impression that “a developer is a developer”, new college grads willing to work for peanuts are very attractive. It takes a good manager to understand that someone’s decades of experience or advanced degree really is worth a lot more money, and not just in the long run. Experienced people have seen more programming constructs in more languages, they have encountered more examples of APIs in more libraries, they have made more mistakes and learned from them, they are more likely to be able to apply suitable algorithms and data formats to problems, and so on. Also, having experienced people on staff actually gives your new developers somebody to learn from.