As far as I know there is no ferry from Morocco, there is one from Cadiz on mainland Spain though. My guess is that's gonna be expensive.
The Canary Islands have 6 airports:
-Gran Canaria (LPA) (main airport)
-La Palma (SPC)
-Tenerife North (TFN)
-Tenerife South (TFS)
At the moment there are no transatlantic direct connections, but since it´s a popular holiday destination there are many cheap charters, especially from Scandinavia, the Netherlands and Germany, but ofcourse also from mainland Spain, and even Morocco and Mauretania to all islands. The flight time to Madrid is about 2,5 hours, Netherlands-Germany 4,5 hours, Scandinavia 6+ hours.
Check http://www.flylc.com/directall-en.asp for connecting airlines.