Companies often hire seniors to replace seniors who have moved on. They need people to hit the ground running and this comes with experience.
Juniors on the other hand have a much higher management overhead (which itself is a skill) and once they've been trained - gained experience - they'll likely move on for a pay bump significantly higher than a promotion if they stayed.
My employer takes on a handful of juniors each year and retains them due to lack of competition in a fairly large geographic area.
People stay because their options are limited when they prefer to live close to family. Many staff have 15, 20 even 30+ years service!