Родился 15 мая 1918 года в городе Староконстантинов ныне Хмельницкой области (Украина) в семье рабочего. Еврей. В 1937 году окончил Днепропетровский машиностроительный техникум. Работал теплотехником на Староконстантиновском сахарном заводе.
В РККА с 1938 года. В 1941 году окончил Бакинское военное пехотное училище.
На фронте в Великую Отечественную войну с ноября 1941 года. Воевал на Дону, в предгорьях Кавказа и под Сталинградом. Принимал участие в освобождении Украины. Был четырежды ранен.
Отличился в уличных боях за город Мелитополь 12—23 октября 1943 года. Его батарея уничтожила 2 танка, 4 автомашины, подавила огонь нескольких батарей и отразила ряд контратак противника.
С 1946 года — в запасе. Окончил Московский институт народного хозяйства в 1958 году. Работал директором гастронома в городе Баку.
Умер 19 октября 1982 года. Похоронен в Баку на еврейском кладбище.
Звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» (№ 1296) Моисею Давидовичу Шахновичу присвоено 1 ноября 1943 года. Награждён орденом Ленина, Красной Звезды, медалями.
Одна из улиц Мелитополя носит имя Героя.