A lot of employees would gladly choose to stay at their current company if the pay raise was fair. It's not easy for people to uproot their lives every 2 years. But there has to be an actual incentive (financial) to staying at a company long term.
Why would they have to uproot every 2 years? Many (the majority of?) tech workers are close-ish to big cities with healthy tech scenes, and remote work is very much 'a thing' these days too. Live in Seattle, get paid for work done in LA, SFO, Portland, etc.
Not everyone is interested in remote work, including IBM. Not everyone lives in big, tech cities. There is an inherent transition cost when switching companies.