Olá Carlos.
Isso aconteceu pois você esqueceu de alterar o parametro do "pincel.lineTo" das linhas 14 e 21.
<!-- esquadro.html -->
<canvas width="600" height="400"></canvas>
<script>
function desenhaEsquadro(xa, ya, xc, yc, cor) {
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle=cor;
pincel.beginPath();
pincel.moveTo(xa, ya);
pincel.lineTo(xa, yc);
pincel.lineTo(xc, yc);
pincel.fill();
}
desenhaEsquadro(50, 50, 400, 400, 'black');
desenhaEsquadro(100, 175, 275, 350, 'white');
</script>
Dessa forma corrige o problema, porém vale lembrar que já que irá usar a função "desenhaEsquadro" duas vezes, uma para a parte Black e outra menor para a parte White, não é necessário repetir duas vezes a parte:
pincel.fillStyle=cor;
pincel.beginPath();
pincel.moveTo(xa, ya);
pincel.lineTo(xa, yc);
pincel.lineTo(xc, yc);
pincel.fill();
dentro da função.
E também que há formas de fazer ficar mais dinamico que isto, embora confesso que não consegui fazer de uma forma que funcionasse de diversos tamanhos diferentes.