From the script:
Alarms sound throughout the hidden Rebel base. In the control room, a
controller urgently gestures for General Rieekan to check a computer
scan.
CONTROLLER
General, there's a fleet of Star
Destroyers coming out of hyperspace
in sector four.
RIEEKAN
Reroute all power to the energy
shield. We've got to hold them till
all transports are away. Prepare
for ground assault.
Rieekan exits hurriedly.
[...]
VADER
What is it, General?
VEERS
My lord, the fleet has moves out
of light-speed. Com-Scan has
detected an energy field protecting
an area around the sixth planet of
the Hoth system. The field is
strong enough to deflect any
bombardment.
VADER
(angrily)
The Rebels are alerted to our
presence. Admiral Ozzel came out
of light-speed too close to the
system.
VEERS
He felt surprise was wiser...
VADER
He is as clumsy as he is stupid.
General, prepare your troops for a
surface attack.
VEERS
Yes, my lord.
Why exactly was this a bad idea, and what was Vader's preferred strategy? The Rebels can apparently raise their shield instantly, so it seems like they would do that anyway, surprised or no. In fact, since being surprised gives them less time to prepare, it seems like this is a good strategy on the Empire's part.
Is the issue that the Imperial forces didn't have enough time to prepare, and it would have been better to come in farther out and spread out, as this answer says? If so, why wouldn't forming up while already in the system also give the Rebels warning, and give them even more time to escape? All I can really think of is that they would have somehow known the range of the Rebel sensors, dropped out of hyperspace just past them, formed up, then quickly flown into range, but that seems hard to infer from the exchange between Vader and Veers.