no tiene nada que ver con generarlo dinámicamente. el código que muestras debería de funcionar. de cualquier modo algunas correcciones
Cita: var checkbox = document.createElement("input");
checkbox.setAttribute("type","checkbox"); // lo añade como atributo
checkbox.onclick = function() {seleccionaCheck(this);}; // no añade el evento como atributo
document.body.appendChild(checkbox);
Cita: for (var i=0; i < 3; i++) {
var div = document.createElement("div");
div.setAttribute("id", "div_" + i); // lo añades como atributo
document.body.appendChild(div);
}