I do believe the hiring managers who say they can't find the workers they need. What I don't believe is that the workers aren't out there, hoping to get hired.
I speculate that the reasons for the perceived - and ONLY perceived - shortage is that it's far more difficult for employers and potential employees to find each other. Another problem is that us engineers are expected to have real-world, paid experience in whatever technology the hiring company uses, rather than these companies providing on-the-job training.
At one time, a college degree and a demonstrable grasp of computing technology was all one needed. Companies were happy to train. No longer.
What really kills me is that when a new technology is introduced, one is _immediately_ required to know about it before getting a job where that technology will be used. Consider that Swift, a new programming language that Apple hopes will make it easier to write iOS Apps, has only been available for a few months, yet one cannot get a job writing Swift code, unless one already has PAID Swift experience on one's resume. It's not enough to just read a book. Neither is anyone willing to train.