We've had a lot of pre war cruise experience with this while my wife was a green card holder, citizen, and two sets of Russian friends on tourist visas at different times with Carnival cruise line. It's really hard to get a firm answer out of them, but it worked out for us. Basically once you get on the ship all is good. We never had passports or green cards looked at until returning to the US.
The huge issue we did have was with Russian friends on a tourist visa that arrived (several years ago) in early January, around the 8th. Checking in to get on the ship the cruise agent noted the US entry stamp in the Russian passport had the previous years date on it. CBP had not updated their stamp to reflect the current year. While we were trying to find a solution to this problem a call was made to the local CBP officer. Was taking forever. Our friend finally found a copy of his plane ticket on his phone that showed the correct date of his flight. It apparently was enough to convince CBP they had made a mistake. We all made the cruise, just barely.
After getting on the ship there were no issues on or off and passport were not needed until returning to the US. Carnival does cover their butt by telling passengers it's their responsibility to have proper visas for each stop, but on one of our first cruises when I was getting the hard sell to book another cruise while on board, I had a long discussion and that's when I was told that once you are on the ship there really wouldn't be a problem.
At least that was our experience.