I definitely suggest booking with a reputable, private tour company for this. I can recommend Captain Marvins (wonderful!!) and Nativeway. If you would like more info on that, click my name and send me a private message or an email. Swimming with the stingrays is such a unique experience. We loved it! Its a little intimidating at first, I was somewhat nervous. But after a few moments, its all just fun. We got to feed them, pet them, hold them and some even kissed them. If you dont want to really touch them, you can put on your mask and snorkel and just float on top of the water and watch them. I dont know all the details of a ships excursion, this is what we did on our private tour. There were only 12 of us whereas the ships tours usually carry around 100 or more. Thats too much chaos for me. If you are taking children, thats a whole different ballgame. I took my 2 sons (8 and 10 at the time) and they got in the water, then right back out. They were too scared to stay in, unfortunately. But our tour guide took a ray over to them (they were sitting on that board at the back of the boat) and he played with it for them to watch, then let them touch and pet it. Its a great time... do it!
*Edited for typos.