Por um pequeno erro de interpretação, entendi que era para criar o circulo e depois trocar a cor. Contudo, o resultado final é o mesmo: circulos criados com cores diferentes, conforme a escolha do usuario.
<canvas width="600" height="400"> </canvas>
<script>
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
var cores = ['blue', 'red', 'green'];
var circulo = [0, 0, 0];
function desenhaCirculo(evento){
var x = evento.pageX - tela.offsetLeft;
var y = evento.pageY - tela.offsetTop;
pincel.fillStyle = cores[0];
pincel.beginPath();
pincel.arc(x, y, 10, 0, 2 * 3.14);
pincel.fill();
circulo = [0, x, y];
}
function mudaCor(){
if(circulo[0] < 2){
circulo[0]++;
} else{
circulo[0] = 0;
}
pincel.fillStyle = cores[circulo[0]];
pincel.beginPath();
pincel.arc(circulo[1], circulo[2], 10, 0, 2 * 3.14);
pincel.fill();
return false;
}
tela.onclick = desenhaCirculo;
tela.oncontextmenu = mudaCor;
</script>