Участник Великой Отечественной войны. Понтонёр 40-го отдельного моторизованного понтонно-мостового батальона 7-й гвардейской армии Степного фронта. Герой Советского Союза.
Родился 15 ноября 1910 года в селе Чердаты ныне Зырянского района Томской области.
22 июня 1941 года был призван в армию. С января 1942 года — на фронтах Великой Отечественной войны. Принимал участие в боях на Северо-Западном, Воронежском, Степном и 2-м Украинском фронтах. К осени 1943 года красноармеец Михаил Ефанов был понтонёром 40-го отдельного моторизованного понтонно-мостового батальона 7-й гвардейской армии Степного фронта. Отличился во время битвы за Днепр.
26 сентября 1943 года во время переправы через Днепр в районе села Бородаевка Верхнеднепровского района Днепропетровской области Украинской ССР Ефанов заменил собой получившего ранение командира отделения и возглавил работы по сборке паромов. Только за первые несколько рейсов отделение Ефанова переправило на западный берег Днепра стрелковый батальон и 6 противотанковых орудий. Переправа действовала в течение нескольких дней. В общей сложности было переправлено 500 советских бойцов и командиров со всем вооружением. Когда 1 октября 1943 года у ведущего катера заглох мотор, Ефанов со своими бойцами при помощи вёсел смогли доставить танк и пехоту на понтоне к месту высадки.
Указом Президиума Верховного Совета СССР от 20 декабря 1943 года за «мужество и героизм, проявленные при форсировании Днепра и удержании плацдарма на его правом берегу» красноармеец Михаил Ефанов был удостоен высокого звания Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» за номером 1508.
В декабре 1945 года в звании старшего сержанта Ефанов был демобилизован. Проживал в Зыряновском районе, работал инструктором Зыряновского райкома ВКП(б), директором хозрасчётного хозяйства, начальником автотранспортного строительного участка. С 1960 года Ефанов проживал в Новосибирске.