Ships that transport goods or passengers between US ports must be US-registered, owned by US citizens, built in the US, and operated by US residents. It's a bit of exceptionally protectionist legislation passed a hundred years ago that continues to hang on mostly because nobody uses boats to move things between US ports anyway.
It's a mess for the cruise industry thought. Cruise ships are never built in the US, so they have to drop off passengers at the same port they picked them up at, or it's a $778 fine per passenger, even in a medical emergency. The cruise company will make the passenger pay the fine, of course.