Если вставить такой код в <head>, работать не будет. А если вставить непосредственно перед </body>, всё будет работать нормально.
По умолчанию JS-код выполняется в том момент, когда браузер при анализе HTML-кода добрался до <script>. И если кон находится в начале страницы, тегов <div class="menu__body"> и <div id="block"> в момент выполнения JS-кода ещё не существует.
Чтобы JS-код можно было вставлять в любое место страницы, надо примерно так:
document.addEventListener('DOMContentLoaded', function() {
var mainNav = document.querySelector('.menu__body');
window.onscroll = function() {
mainNav.classList.toggle('test', mainNav.scrollTop > 50 || document.documentElement.scrollTop > 50);
}
});