Потому что вы его перезаписали (wtf?):
if(arr[i][j] == "w") {
ctx.fillRect = "white"; // чооооо?
} else {ctx.fillRect = "black" // чооооо?}
Сначала нужно записать цвет в fillStyle, а затем вызывать fillRect()
ctx.fillStyle = "#FF0000";
ctx.fillRect(20,20,150,100);
ResultБонус