I speculate that it's a couple of things. First, carriers are putting out big capital outlays to the phone manufacturers to get customers on new phones either under a contract with a subsidy or a payment plan.
Second, the carriers are smart enough to realize that even with relatively old phones data usage is still pretty high. The carriers now make their money on metered data so they want to avoid the capital outlay required to subsidize a phone if they don't need to for customers to stay data hogs. T-Mobile provided a real world experiment that likely found attrition to be low enough even with contracts gone that it was worth removing the subsidy.
Tl;dr
The carriers are cheap and don't want to lend you money for a new phone when you still pay them a lot to use your old one.
Second, the carriers are smart enough to realize that even with relatively old phones data usage is still pretty high. The carriers now make their money on metered data so they want to avoid the capital outlay required to subsidize a phone if they don't need to for customers to stay data hogs. T-Mobile provided a real world experiment that likely found attrition to be low enough even with contracts gone that it was worth removing the subsidy.
Tl;dr The carriers are cheap and don't want to lend you money for a new phone when you still pay them a lot to use your old one.