Since cannabis is illegal at a federal level in the USA, it's illegal to cross state lines with it, even if it's legal in both states or if you have a medical card.
Bring some from NY to NJ? It's legal in both places, right? Drug-smuggling felony if you're caught.
Bring some from the US to Canada? Again, very illegal—crossing international borders is even worse.
Does this make sense? Absolutely not. Cannabis is useful for legitimate medical purposes, and so far, legal recreational hasn't meant the end of the world places that it's been legalized.
The federal laws are outdated. Marijuana is still a Schedule 1 drug in the US, which is defined as "drugs with no currently accepted medical use and a high potential for abuse". Is that really the case? Evidence would strongly point to no, but the laws haven't caught up.
Given that most people in the US are now in favor of legalization—or at the very least, medical legalization—hopefully the fed law will change to at least decriminalize, deschedule, or legalize.
Politicians have proven themselves to not give a rat's behind about what people think, but I still tend to think there will be some legislative action at some point, because there's money to be made. A lot of money is flowing into the burgeoning cannabis industry, and it's legitimate money, unlike the old black market days. Laws tend to follow the money, so I'd imagine U.S. law will change on a federal level sometime in the near future.
Either way, it doesn't affect cruises. Trafficking marijuana across an international border is still illegal via international maritime law. And even if it wasn't, do you think NCL would want to competition with the drinks package?
I'd love a gummy on a cruise, but it ain't happening for the foreseeable future, and I'm not willing to go to prison for one either.