С innerHTML есть побочные эффекты - например, старые элементы, какие там были, будут пересозданы в дереве DOM и они могут потерять то, что было назначено им не через HTML-код документа или изменено в процессе пользователем. Ну и также у textContent преимущество в том, что не нужно беспокоиться об XSS (если злоумышленник загонит туда HTML-тэги).
Кстати, есть ещё один метод -
insertAdjacentHTML (он сочетает в себе простоту innerHTML, но не передраконивает предыдущее содержимое)