If you need to hire someone, you're going to have to pay market rate for a particular hire. You can pay less for less skill or in certain locations. You can try to offer below market and wait for a candidate with few options to accept. But you can't really get around this. If market pay is going up, you're going to have to pay more than for existing employees. If pay is going down, you can pay less than existing employees. Usually it is the former, but there are absolutely companies right now in the declining wage situation where they are paying new hires less.
As for existing employees, most will complain if they are being paid less than new hires, but only some fraction leave. Usually bringing everyone up to the new hire pay level costs way more than the cost from backfilling positions where someone left for more pay or to give counter offers for those you want to keep from leaving.
Here is another, but related question: why don't long time employees look for a better paying opportunity?
comfort, convenience, they know all the shortcuts, they know the tribe, they know the people who that will help them and the people to avoid. They pick up the phone and get the thing they are looking for in 5mins, no begging required. A learning curve can be a b*tch, and folks that have been sitting in the same chair for 20y got nothing new to learn. If they are smart they are doing 100% of their tasks at 50% of the time, so they nap at home, or take really long coffee breaks in the office. Work is close to home (probably) and getting another job that is 30mins driving more (meaning 1h/day, 5h/week) ain't worth the extra $500 per month.
Also, 'better the devil you know'.
Market rate isn't what the average person is being paid. It's the amount that both parties accept.
Pay = (cost of change) + (value of work)
For new hires, the cost is high (interviews, effort) so the pay needs to be high. For long time employees, the cost of staying is negative (friends, familiar/working code, devil you know) and the cost of moving is positive, and this gap increases with tenure.
Firstly there's more to a job than just pay. Some places are better to work at than others. Perhaps it's team dynamics, geographic location, remote or office, good or bad office etc.
Some financial perks improve with length of tenure.
Long-termers tend to have more job security than newbies. First in, first out when positions are cut.
Fewer, or more, responsibilities. Things like being on-call over weekends.
Seniority often comes with non-financial perks that aren't monetary, but make life better. More flexible working conditions. Better parking. Work from home, and so on.
None of which stops people discussing pay with their manager. Which is a Lot easier to do than switching jobs.
The devil you know is often better than the devil you don't know.
Why risk ending up with a bad employer for more pay if you can already coast at an OK employer for good enough pay?
I see it much like that Treehouse Of Horror episode of The Simpsons where Homer time travels to the past and finally comes back to the present to discover that everything is the same except everyone now has a long tongue they eat with; after all the things he went through earlier, his response is "Eh... close enough."
Basically it comes down to a few reasons:
1) Hiring budgets are always > than budgets for raises
2) HR and recruiters are incentivized to hire new people rather than retain current ones
3) Employers overvalue experiences obtained elsewhere
4) Nobody really wants to solve the problem of retention because it's a deep-rooted issue with no easy fixes (unlike paying someone new a lot of money)
Switching jobs is stressful and you can only do that so often before being flagged as a job hopper. One company declined to interview me because I switched jobs in less than 3 years(2.5). Plus, if the pay is decent, why rock the boat? The competition may have worse work environments, bosses or colleagues.
This is why unions existed.
Not sure if you are serious, but in case you are: your company is very very special.
The disconnect comes between what market rate is and what actual pay is. If you want to hire people you must offer competitive pay.
It's also because the ones with the most tenure are the ones deciding how pay works.
One very clear sign of this is if you are in the management side (I am), the amount of REALLY IMPRESSIVE talent that is looking for a new job at the moment is just bonkers.
Recruitment agencies business for developers is a dying kind of business at the moment, companies can directly access top-notch talent by sorting through CVs, running tests etc (typical company recruiting process).
Go get rich then.
But you can make this work for you. Give yourself a raise every 2 years or so.
There is an arbitrage too by the company that once most people are comfortable, they chose stability and the known quantity they have over the unknown opportunity they would have with changing companies.
The real question is how can someone not understand that a company is not going to pay more if they don't have to? Seems kind of obvious.
What else possible answer did you expect, i sincerely wonder?
Any evidence or data to back this up?
Anecdotally, I can say that when I was hiring devs in a large AU Corporate, this wasn’t the case :-)