Stává se to proto, že data představují „místní čas“, nikoli „utc“, ve kterém jsou uložena, pokud o to nepožádáte:
moment(obj.date).utc().format('MM-DD-YYYY');
Rozdíl tedy představuje vaše nakonfigurované časové pásmo upravující datum.
Viz UTC v dokumentech.