Personally, as a diver who is open water certified, advanced open water certified, and rescue diver certified with over 150 dives, as well as having clients who have taken the onboard certification courses, I believe it is much better to take the courses before you go on a cruise.
Scuba diving is a recreational activity, but done wrong can cost you your life!
I firmly believe that in order to do this properly you need to do all the course work, do all the pool time, and do the open water dives. Rushing through this may be good for some, but may not be good for others. For example, PADI offers a weekend course, which one of my sons did. It was too quick and was not right for him, so he ended up failing the course. He then enrolled in a regular course that takes more time and is not so hurried, and he did much better and understood the concepts.
While some people may be fine with a quicker course, others are not.
I'm not saying the cruise line courses lack in safety, but they are a bit hurried and may not be for everyone.
I would much rather see someone working with a local dive instructor and taking their time to insure they understand everything about the sport and how to do it correctly and safely.
Not only this, but why waste your vacation time in classes? It would be so much better to get everything done before you go on your cruise and that way you can not only enjoy the cruise more, but you can also enjoy the diving more.
I've dove with people who did these quick courses and they always made me very nervous and feared for their safety because they simply did not understand the dangers as well as they should.
Just my opinion, but when it comes to something that is potentially very dangerous and could cost you your life, I don't believe in shortcuts.