We just did this itinerary on the Carnival Jubilee. In Mahogany Bay (Roatan) we did a Maya Key excursion with snorkeling and lunch through the ship. Snorkeling was great, lunch good. Only complaint was how close some of the coral is to the surface. Just need to be careful as you swim.
In Costa Maya, we took a cab ($4pp each way) to a beach club in Mahahual. Beach club was great (Pez Quadro at 40 Canons Hotel) and was AI for drinks, with lunch (one order per person). There were hawkers on the beach, but a simple "no thank you" and they moved on. Port area, when we returned, looked to crowded for us.
In Cozumel, we did a food tour through Cozumel Chefs (all the stops were family run restaurants and they were able to accommodate our allergies).