Such an agreement is legal. The parties to a settlement dispute can agree to any terms that they want. It is not unusual to have a non-discloure agreement in settlements. In this case, the vet wants you to agree to not post anything negative. If posting something negative is more important than receiving the money, then do not agree to the settlement. However, if you take the money and agree to not post anything negative on social media, then you can not do so.
Answered on Feb 09th, 2017 at 7:08 AM