Где же я просчитался??
Потому что вы не дописываете значение к текущему, а заменяете. 
Попробуйте заменить theSpan.innerHTML = "<br />" + i + " = " + String.fromCharCode(i);
наtheSpan.innerHTML + = "<br />" + i + " = " + String.fromCharCode(i);
В ответах выше все строки будут записаны в один span
Если нужно много span то нужно перенести createElement внутрь цикла
Так же замечу, что манипуляции с реальным DOM в цикле не очень хорошая идея (ресурсозатратная), лучше сначала сформировать содержимое и один раз поменять DOM
Я бы Ваш пример сделал так:var myInput = document.getElementById("myInput");
    var tIn = document.getElementById("tIn");
    var demo = document.getElementById("demo");
    var demoFragment = document.createDocumentFragment();

    myInput.onclick = function() {
      for (var i = 1072; i <= 1103; i++) {
        var theSpan = document.createElement('span');
        theSpan.innerHTML = "<br />" + i + " = " + String.fromCharCode(i);
        demoFragment.appendChild(theSpan);
      };
      demo.appendChild(demoFragment);
    }