They won't be giving any credits or other reimbursement. The cruise line has the contractual right to modify itineraries and in this case Carnival simply is not going to try to placate anyone.
I don't know the true reason for the change. I suspect it is a cost issue with fuel savings being realized by removing San Juan. Also, although you like San Juan I think the majority of North American cruisers do not. Carnival doesn't make business decisions without lots of research. If their data showed that people wanted the Freedom to continue stopping at San Juan it would have.