Yes, it is the rule that a ship that is not registered in the US might not transport passangers from one US port to another unless there is a stop at a "distant port" inbetween. That is why the Panama Canal cruise has to stop in Cartagena (or another port south of the Panama Canal, I think some Caribbean islands qualify as well, for example Aruba). Transportation to and from San Juan is excluded from that rule.