I think you hit it on the nose. Companies don't want to invest in training their new hires. They just want someone to hit the ground running with as little hand holding as possible.
It doesn't help that, for a certain slice of the software industry, staying in a position for 18-24 months has almost been normed. If it's unlikely that your hire is going to be there for more than a couple of years, why on earth would you "invest" in them. It's not like you'll get a return on that investment.
And why would software engineers stay if you did invest in their training but in the meantime you're going to reduce or eliminate bonuses, make your health plan worse (or just plain switch to high-deductible with no PPO options), stop 401k matching, other key employees have left and you don't hire new people and instead dump that responsibility on someone else without promotion or raises, etc.
I've seen all of those things happen at a single company before (and relatively quickly, over two years), and several of those things happen at several companies.
This is often the case. Another factor is that in many of the areas with a persistent shortage of talent is that it would require 18-24 months of training to really become productive. That's a big investment and people tend to have short tenures at companies these days.