Legally, it's not as though they could have. Nobody had the right to tell a Roman citizen he couldn't live in Rome (except by a legal judgement of exile). Of course that would not have stopped an emperor, but it would have seemed an act of tyranny, and quite possibly could have triggered riots.
Then, there is a matter of prestige: The dole exemplifies what it is to be Roman. It isn't welfare. It is the spoils of conquest, the wealth of subject peoples brought to the people of Rome. Ending it would not just be a fiscal consideration. It's not "our money", it's the emperor taking care of his loyal people.
I also wonder just how significant a drain the dole really was. We are not talking about the Empire actually feeding the city. The number of dole chits was limited, and the quantities not sufficient to feed a family. Considering the price level in the city, it looks more like a kind of cost-of-living adjustment. In the end, how much would this have cost? Probably nowhere near as much as maintaining thirty legions or four gladiator stables. Maybe there is a degree of confuision over the fact that the Roman dole was known as annona, but that is also the name of a local taxation in kind we see increasingly invoked from the third century onwards to meet the needs of the government on the spot. That one hurt.
Finally, there is a limited time window for the solution, Before the Civil War (and well into it), Roman veterans were generally unwilling to be settled outsidse of Italy. After Caracalla, there would not have been much colonisable land, and far too many Roman citizens. In between, there were colonies founded, but it was always an expensive proposition, building the city, measuring out the land, marking the boundaries. The annona might have looked cheaper.