If you are going to sign up for excursions with the cruise line you must do it early. The most desirable ones book up early. You can also arrange through the internet to do excursions on your own. Many people do this to save money, however I have never tried it. The biggest advantage to booking through the cruise line is they guarentee to have you back at the ship in time for sailing (a very important comfort factor).
Some cruise lines will let you book on line prior to the cruise, so if you know what you want to do, book on their website and you will know if you can get the excursion. Anyway, bottom line is book as soon as you can to ensure you get the exursion and time you want. P.S. read port reviews. Depending what you like the "Snorkle with the Sting Rays" in Grand Cayman is really great. As for Cozumel, if you only want to snorkle, take a cab to Chankunab State Park. I have not done this but I understand it is great. It's a short cab ride and entrance to the park is only $10.00. You can also rent snorkling equipment and snorkle from the beach.