I don't know why you include this in the "hard to fill" category. The problem is not that people are hard to find, it's that the employers are not willing to pay for the expertise. Those of us with decades of experience, and who are most likely at the latter end of our careers are often willing and happy to find a slot working on legacy systems, but who also want to be paid commensurably with our experience, i.e. as "senior developers".
Thus, these roles are being filled, as you state, by juniors/graduates who initially have no idea what they are getting into, and leave as soon as they realise what they have got themselves into.
If the employers/clients change their miserly ways, they would easily find experienced and willing developers to fill their "empty" positions.
Keep Up with TechRepublic