Extending a few weeks doesn't really hurt the EU*. Kicking them out now might put part of the blame on the EU, at least in some people's perception. At least with the EU elections, the EU has a good excuse to force the UK out, or force them to take part in EU elections (which is counter to the promised leaving of the EU).
If May manages to pass the deal now (very unlikely, I know), no-deal is successfully averted which would be very good for the parties involved.
If May does not manage to come up with a good alternative then the UK will be out only a few weeks later. Yes, this causes the uncertainty to exist for a few more weeks, but it also gives some time to prepare as it's clearer now than ever before that no-deal is likely.
If May does manage to propose a new deal that is agreeable to the EU and UK parliament (maybe the UK decides to come up with a cross-party approach) that would be even better. It's in everyone's interest that there is a deal and the more people support a deal the more likely it is to be a lasting solution.
*In fact, the extra time may be helpful for some business's and countries' no-deal preparations. Dutch state media wrote the following:
Het uitstel van brexit lijkt Nederlandse ondernemers goed uit te komen. Twee derde heeft zich namelijk niet of maar een beetje voorbereid op een vertrek van de Britten, blijkt uit nieuwe cijfers van het ministerie van Buitenlandse Zaken.
Ook in de Nederlandse havens moet nog veel gebeuren om de export naar het Verenigd Koninkrijk ook na een Brits vertrek uit de Europese Unie soepel te laten verlopen. Deal óf geen deal.
Roughly translated by me:
The postponement of Brexit seems to be good for Dutch entrepreneurs. Two-thirds has made no or only little preparations for the British departure from the EU, statistics from the Dutch Foreign Ministry show.
Dutch ports, too, still need to do a lot to ensure exports to the UK continue to run smoothly. Deal or no deal.