La réponse de Murielle est complète. Pour ma part je vous conseille le bus, et idéalement un bus de la CTM ou de Supratours (d'autres bus à la gare routière vous emmèneront à Essaouira aussi vite et parfois pour moins cher, mais c'est un peu la loterie en termes de qualité).
Si vous partez dans une période chargée, je vous conseille de réserver vos places à la CTM ou chez Supratours à l'avance (voir leur adresse à Marrakech sur leurs sites web respectifs) : aller et retour (gare aux mauvaises surprises à Essaouira pour qui n'a pas réservé son retour à Marrakech à l'avance.