Olá Heloisa tudo bem ? 
Acabei de testar seu código aqui e tem uma pequena observação na linha 20 : 
desenhaCirculo(300, 2,20 10, 'blue');
Observe que foi inserido uma vírgula entre o 2,20 quando na verdade essa vírgula deveria estar entre o  220,10  e esse pequeno detalhe causa erros de compilação  : 
 desenhaCirculo(300, 220 ,10, 'blue');
Tirando esse detalhe o modo que você fez seu código ficou muito legal e trouxe o resultado esperado parabéns. =) 
Outra maneira seria de fazer ele seria : 
<canvas width="600" height="400"></canvas>
<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);
    function desenhaCirculo(x, y, raio, cor) {
        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }
    function desenhaFlor(x, y) {
        desenhaCirculo(x, y+20, 10, 'blue');
        desenhaCirculo(x, y, 10, 'red');
        desenhaCirculo(x, y-20, 10, 'yellow');
        desenhaCirculo(x-20, y, 10, 'orange');
        desenhaCirculo(x+20, y, 10, 'black');
    }
    desenhaFlor(300, 200);
</script>
 Nesse caso apenas criamos uma nova função chamada desenhaFlor que podemos indicar a posição x e y de onde o centro da flor será desenhado e dentro da função ajustar esse valor somando/subtraindo 20 pixels , após feito isso é só passar os valores do posicionamento dentro da função desenhaFlor quando for invoca-la. 
Espero ter ajudado , continue assim praticando que você vai evoluir muito . =) 
Abraços e bons estudos!!