I'll play the devil's advocate to the devil's advocate.
Zelensky had to keep business as usual and make no overt mobilization.
Sure, he could have mobilised reserves, started preparations, evacuate civilians, start warning people of incoming war. This has two effects:
On one hand, those things are the same things you would do before an aggressive war. They could have been easily spun by Russia as a credible provocation, emboldening their domestic opinion and weakening foreign support of Ukraine, now seen as a part of escalation. In addition, the mounting provocation would allow the Russian army to start mentally preparing for the invasion a few days before it happens. As it actually happened, Ukrain is seen as a defenseless victim of unprovoked aggression and to maintain the pretense of training the Russian soldiers were kept in the dark till the moment they crossed the border with utter mismatch between the justification used and the reality on the ground with devastating effects on morale and logistics.
On the other, domestic, hand being caught by surprise makes losing territory politically acceptable. Had the military been fully mobilised and geared for war, there would have been pressure to engage in direct confrontation at the border, which would have been lost breaking defender morale. Likewise trying to retreat after mobilization sends the message that you can't win and also destroys morale. But being caught by surprise makes it palatable to cede territory for time, which they sorely needed to galvanize international response and let the Russian offensive bog down. Meanwhile, domestic will to fight is also at an all time high.
So, you see, being caught by surprise is Ukraine's biggest advantage and Russia's greatest disadvantage, another thing that makes this war insane.
Ukraine prepared for war, but not the kind of war with armies directly clashing holding the border.
here is a nice blog post on the kind of asymmetrical warfare Ukraine is engaging in, which is the only kind they can win.