This captures it quite well. A "shortage" means that you cannot fill the need regardless of what you are willing to pay. A "pricing problem" means that engineers you can get for your offered pay are incapable of meeting the requirements of the job.
1) The market ain't perfect. There are employers willing to pay but employees don't know about them. They can't get in touch.
2) If there is a very limited supply of people (I believe that's real for a lot of complex stuff), a single person can only be at a single place, it only take a few employers to get all of them and that's it!
It gets worse... because then people can't catch up and train. Training need time and mentoring, time is slow, mentoring is hard because the mentor are stuck in a few selection organizations with impossibly high standards.