Cela se produit parce que les dates représentent "l'heure locale" plutôt que "utc" dans laquelle elles sont stockées, sauf si vous le demandez :
moment(obj.date).utc().format('MM-DD-YYYY');
La différence est donc représentée par votre fuseau horaire configuré en ajustant la date.
Voir UTC dans la documentation.