Keep in mind that purchases on the ship must be included in the total on your U.S. Customs Declaration Form.
If you go above the U.S. Customs allowance, then, on debarkation morning, a U.S. Customs officer will tell you how much duty (tax) you owe.
I imagine that most passengers stay below the U.S. Customs allowance, so this isn't an issue. But if you're planning to buy jewelry in foreign ports, you could exceed the U.S. Customs allowance, and thus your purchases on the ship won't really be tax free.