The main reason is that the Arduino can only handle supplying a small amount of power and most motors would draw more power than the Arduino can supply.
When you use the H-Bridge, you supply the power for the motor(s) from an external power source so you do not put any strain on the Arduino's power supply.