Eu fiz algumas séries de testes para treinar e me familiarizar com o canvas e acabei me deparando com o código a seguir:
<canvas width="600" height="400"></canvas>
<script>
    function drawnSquare(x, y, color) {
        var tela = document.querySelector("canvas");
        var pincel = tela.getContext("2d");
        pincel.fillStyle = "lightgray";
        pincel.fillRect(0, 0, 600, 400);
        pincel.fillStyle = color;
        pincel.fillRect(x, y, 50, 50);
        pincel.fillStroke = "black";
        pincel.strokeRect(x, y, 50, 50);
    }
    for( var x = 0; x < 600; x+= 50) {
        drawnSquare(x, 0, "red");
    }
</script>
O resultado disso é a tela cinza com apenas um quadrado no canto superior direito e se eu tirar as duas linhas de fundo
        pincel.fillStyle = "lightgray";
        pincel.fillRect(0, 0, 600, 400);
tudo volta ao normal, o porque desse conflito?