This culture has been decades in the making. Back in the "old" days, you work for a company until you retire.
The problem is that companies have shown they have no loyalty to employees specially when layoffs happen. So in return, employees no longer have loyalty to companies.
A job hop is around 10% salary increase while staying in a company, you'll get 3% if lucky. Let's say you make 70K a year. If you jump every year for 3 years, you'll be making 90k. If you stay in your current job, you'll be making 76k.
Saying that a company should give 10% salary bumps to keep employees makes sense only to everyone except the accountants that manages the companies finances.
I think once you get to senior level pay, then you can stick around and not worry about salary. (This is when an additional amount of money does not make a difference in your life.)
So my suggestion when you are young, strategically job hop. Not just for salary, but set yourself up with companies that lets you learn skills that are valuable to most companies.
Lastly, job hopping is bad mostly for the companies. The individual job hopper has a lot to gain.