Дмитрий Иванович Ефремов родился 10 июля 1926 года в деревне Пашино Атяшевского района в семье крестьян. По национальности русский. После окончания Шейн-Майданской неполной средней школы в 1943 году он поступил на курсы всеобщего воинского обучения при Атяшевском райвоенкомате. В ноябре того же года был призван на службу в Рабоче-крестьянскую Красную Армию. С сентября 1944 года — на фронтах Великой Отечественной войны. К марту 1945 года сержант Дмитрий Ефремов командовал пулемётным расчётом 68-го стрелкового полка 70-й стрелковой дивизии 43-й армии 3-го Белорусского фронта.
2-6 марта 1945 года во время боёв у деревни Пертельтникен посёлок Терновка Зеленоградского района Калининградской области Ефремов Дмитрий Иванович со своим расчётом перекрыл пути к отступлению по шоссе группе из 80 солдат и офицеров противника. Те предприняли несколько контратак, но все они были отбиты. В тех боях Ефремов уничтожил около 40 вражеских солдат. Во время штурма безымянной высоты в том же районе Ефремов Д.И. непрерывно вёл огонь, способствовав успешному овладению высотой.
6-8 апреля 1945 года во время боя за Фридрихсберг посёлок Зелёнок в черте Калининграда Дмитрий Иванович переправился через канал Ланд-Грабен и открыл по противнику огонь, способствовав успешной переправе батальона. Во время штурма одного из немецких опорных пунктов Ефремов зашёл противнику в тыл и открыл по нему огонь, вызвав в его рядах панику. Когда пулемёт Ефремова Д.И. был разбит снарядом, он взял у раненого бойца винтовку и продолжал вести огонь, пока сам не был тяжело ранен.
Указом Президиума Верховного Совета СССР от 19 апреля 1945 года за «образцовое выполнение боевых заданий командования на фронте борьбы с немецкими захватчиками и проявленные при этом мужество и героизм» сержант Дмитрий Иванович Ефремов был удостоен высокого звания Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» за номером 8923.
День Победы встретил в госпитале. В результате полученного в последнем бою ранения долго находился на лечении.
В 1946 году Ефремов Д.И. был демобилизован. Окончил полный курс средней школы, после чего работал в колхозе. С сентября 1955 года проживал в Лениногорске, ныне — Риддер Восточно-Казахстанской области Казахской ССР. В 1956 году окончил Всесоюзный заочный институт советской торговли, после чего находился на хозяйственных должностях.
Работал бухгалтером-ревизором в райпотребсоюзе, в райкоме партии, бухгалтером на Лениногорском полиметаллическом комбинате, с 1964 года – бухгалтером в 30-м Лениногорском военизированном горноспасательном отряде.
Вел большую патриотическую работу среди молодёжи в школах и учебных заведениях города.
В 1988 году вышел на пенсию. Умер 5 ноября 2005 года. Похоронен в г. Лениногорск (ныне г. Риддер) в Казахстане.
Был также награждён орденами Отечественной войны 1-й и 2-й степеней, орденом Красной Звезды, рядом медалей. На Аллее Героев на Площади 40-летия Победы в р.п. Атяшево установлен памятный бюст.