Вы немедленно выполняете updateTime (), она выполняет первые две строки, а затем также сразу же возвращает функцию, которая запускается в первый раз спустя 1 секунду, а затем каждую секунду после этого
Пожалуйста, прочитайте комментарии, которые янаписал в коде:
let div = document.getElementById("div1");
const updateTime = () => {
// next two lines executed by updateTime() immediately
let seconds = 0; // these are remembered because you create a closure
if (seconds === 0) div.textContent = `0 sekund`;
// NOW the following function is returned and will be what is
// executed for the rest of the life of the setInterval
// The first time this returned function is called is in one second from now
return () => { // this creates a closure. It is a good way to handle vars
seconds++; // this is known only to the function
div.textContent = `${seconds} sekund`;
}
}
setInterval(
updateTime(), // execute this IMMEDIATELY
1000 // execute whatever is returned from updateTime in intervals of 1 seconds
);
<div id="div1"></div>