Тогда все ясно.
document.getElementById("name").value
применяется для получения данных из
input и
texarea,
select, и т.д. элементов HTML у которых вообще может быть
value.
У
div может быть
value?
Нет, поэтому применяется
innerHTML.
Домашнее задание: исправить ошибку самостоятельно.