Григорий Моисеевич Дуб родился 15 июля 1919 года в станице Челбасской Каневского района (ныне Краснодарского края) в семье крестьянина. Стал членом ВКП(б)/КПСС в 1944 года.
После окончания семилетней школы работал начальником пожарной команды. Службу в рядах Красной армии начал с 1940 года. Воевал на фронтах Великой Отечественной войны с июня 1942 года.
Помощник командира взвода 1001-го стрелкового полка (279-стрелковая дивизия, 51-я армия, 4-й Украинский фронт), комсомолец, старший сержант Григорий Дуб в боях 9 мая 1944 года на подступах к Севастополю в районе высоты с отметкой 144,4 метра скрытно проник к доту гитлеровцев и забросал амбразуру гранатами. После этого вступил в рукопашную схватку с группой противника, охранявшей дот, захватил крупнокалиберный пулемет врага и отразил вражескую контратаку.
Указом Президиума Верховного Совета СССР от 24 марта 1945 года Дуб присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» (№7304).
Награжден также двумя орденами Отечественной войны I степени, орденом Красной Звезды и медалями.
С 1945 года младший лейтенант Григорий Моисеевич находился в запасе.
После войны окончил Краснодарскую краевую партийную школу. Затем работал председателем сельсовета, техником в ГВФ. Жил в станице Крыловской Ленинградского района Краснодарского края.
Умер Григорий Дуб 9 марта 1994 года в городе Краснодаре. Похоронен в станице Крыловской Ленинградского района края.
Памятная доска с именем Героя установлена в школе №11 станицы Новоплатнировской Ленинградского района.
Дополнительные сведения по истории службы можно посмотреть здесь.