If it happened to you before, you were probably told then that the cruise contract allows them to change the itinerary at will.
It happened to you once, and you were unhappy, yet you went back.
It is the pits missing a port, but not something that's disallowed by the passenger contract.
As to the BBB, I don't know of many more useless organizations. They have no authority, no arm to investigate complaints to see if they are valid or not. They are just a filing cabinet.