Moment сохраняет смещение UT C, если вы передаете его, как в вашем примере (Z = Zulu time = UTC + 0)
Кажется, что ваш местный часовой пояс имеет отрицательное смещение UT C, например UT C -1, что в вашем примере будет означать, что дата в вашем часовом поясе на самом деле является днем раньше, чем по зулусскому времени.
Вы можете подтвердить это, распечатав строку даты ISO 8601 из вашего объекта момента:
moment('2020-07-12T00:00:00.000Z').toISOString();
// -> "2020-07-12T00:00:00.000Z"
moment('2020-07-12T00:00:00.000Z').toISOString(true);
// -> local time e.g. "2020-07-12T03:00:00.000+03:00"
// if your UTC offset is +3
moment('2020-07-12T00:00:00.000Z').toISOString(true);
// -> local time e.g. "2020-07-11T23:00:00.000-01:00"
// if your UTC offset is -1