Another vote for getting the equipment and working on it in the pool! My DS is 5 and we have been working on snorkling for a couple of weeks. He has always objected to putting his face in the water, so even with the mask it was initially difficult to get him to even try. We are past that hurdle now! So far, we have been working in our own small "simple set" pool which is only 2 ft deep. We are now going to have to move up to the public pool - since he can easily just stand up, he tends to only float and "snorkle" for about 30 seconds. Since there is nothing to see in the pool, he get bored and just stands up and stops. After he is comfortable in the pool where he CAN'T stand up, then I am going to take him to a lake - not the same as the ocean, but closer than the pool.
The way I am getting a 5 year old to cooperate with all of this is by checking books out of the library about oceans, coral reefs, sea life, etc. He WANTS to snorkle on the cruise, so is willing to work at it now.
So far, the most difficult thing has been getting him to remember to breath through his mouth - every so often he forgets and breathes out his nose and, of course, the mask loosens and leaks! Practice is definitely improving this!!!
Good luck,
Pamela