Методы
getElementsByClassName()
,
..byName()
,
..byTagName()
— возвращают «живую» коллекцию. Когда удаляете 0-й элемент, остальные тут же сдвигаются и бывший 1-м, становится 0-м, но его цикл уже не будет удалять. Теперь к удалению 1-й (бывший 2-й) — поэтому удаляются через один.
Попробуйте, например, в вашем коде изменить единственную строку и идти с конца:
for (let i = li.length - 1; i >= 0; i--) {
Ещё коллекцию можно заморозить, переведя её в обычный массив:
[...menu[1].getElementsByClassName("main-menu__item")]
А вообще, чего мелочиться: удалите родительский контейнер сразу )
document.querySelectorAll('.main-menu')[1].remove()