Not specific to IT
companies claiming there aren't enough "good people" and "failing schools/education" is commonplace, and for very common reasons:
a) They won't pay enough to recruit the skilled people that are already present (except at C level)
b) They won't pay enough to keep the skilled people they already have, so typically leak skills
c) They won't provide training to create new skill sets of use to them
d) HR interpret all requests for "would be nice to have" as "must have", resulting in impossible skill sets
e) They want to replace experienced staff with new-starts to reduce staff costs but retain all the benefits of expert staff to maintain company performance. Hint: you can't.
f) Poaching good staff can be more difficult than you think: its not just about money. Skilled technical people expect a combination of poor management and no loyalty from most management, certainly faceless new management, and thus need to factor-in the risk of being replaced at the drop-of-a-hat by notionally (and erroneously) cheaper new-starts by a potential new employer