Вы устанавливаете цвет строки, а не переменную.Вам нужно исправить, как вы строите строку.
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var x;
var y;
var color;
for (x = 0; x < 4; x++) {
for (y = 0; y < 4; y++) {
color = 255 - x * 20 - y * 20;
ctx.fillStyle = 'rgba(0, 0, ' + color + ', 1.0)';
ctx.fillRect((x*10), (y*10), 10, 10);
}
}
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">