Это потому, что ваш html еще не рендерился.Подумайте о браузере, читающем вашу страницу построчно и выполняющем все, что вы просите, чтобы он выполнялся, поэтому, если вы скажете ему получить элемент до его обработки, он не сможет это сделать.
Кроме того, в событии onload вы также можете поместить скрипт после элементов (для лучшего понимания того, как все работает, ваш способ, используя onload, прекрасно подходит, если не лучше):
<span id="content">Hello StackOverflow!</span>
<button type="button" id="switcher-large">🔎</button>
<script>
var docId = document.getElementById('switcher-large');
docId.onclick = function(){
var content = document.getElementById('content').classList.add('large');
};
</script>