Quickest and cheapest is Algeciras to (the new) Tanger-Med port with absolutely no hassle from the border staff in Morocco, otherwise Algeciras to Ceuta if you want a bit of duty free before crossing the border into Morocco. Tarifa to Tangier is not recommended unless you like hassle from touts. Yes you can pre-book, but it's really just as easy to turn up and buy the ticket.
I've also done the VERY expensive and boring trip from Marseille to Tunis, but Tunisia is no where near as good as Morocco. Morocco 10/10 - Tunisia 4/10