For of просто перебирает элементы и привязывает ко всем кнопкам событие клик, и все он один раз заработал привязал событие к кнопкам и всё, и уже когда на какую то кнопку нажали вызывается анонимная функция в контексте для конкретной кнопки.
forof просто цыкл как и for и смысла он тут не меняет, и вообще можно было бы сделать более красиво с for использую event или this пример.
for(let i =0; i<keys.length; i++){
keys[i].onclick = function() {
display.textContent +=this.textContent;
}
}