This is standard practice for all cruise lines. If you are in a US port, you are subject to local sales tax rules and regulations. Nothing you can do about it. Big brother wants his share. Only option is to stay dry until the ship enters international waters.