Morgan did nothing wrong. Hayes blocked the plate and a runner is entitled to knock the catcher over in that case provided he hits with his body and not his arms (which Morgan did). It's unfortunate that Hayes was hurt, but to throw at a player for a clean play with an unfortunate result is bush league.
It's possible (nowhere near certain) that if Morgan had slid he would have been safe. However, Morgan was running as fast as he could and saw a close play developing and the catcher blocking the plate. Furthermore, sliding into a catcher's equipment is inherently dangerous (just ask Derek Jeter and Ken Huckaby).
The person who really deserves to be suspended here is Uggla. He was not trying to protect his teammate, he was trying to hurt Morgan.