Mi código quedó así:
<meta charset = "utf-8">
<html>
    <head>
    </head>
    <body>
    <canvas width="600" height="400"></canvas>
<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    var color;
    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);
    var puedoDibujar = false;
//----- Función para escribir texto en un canvas
    function escribirTexto(x , y, color, texto) {
        pincel.font='12px Georgia';
        pincel.fillStyle=color;
        pincel.fillText(texto, x, y);    
    }//----
//----- Función para dibujar los cuadros de la paleta
    function dibujarcuadro(color,x,y) {
        pincel.fillStyle = color;
        pincel.beginPath();
        pincel.fillRect(x,y,50,50);
    }
//----- Función para dibujar el circulo con el color asignado al hacer clic izquierdo del mouse
    function dibujarCirculo(evento) {
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;
        escribirTexto(0,380,'grey','███████████');
        escribirTexto(0,380,'black',x+' '+y);
        if(puedoDibujar && x>=0 && y>=55) {
            pincel.fillStyle = color;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }
    }
//----- Función para habilitar el dibujado
    function habilitarDibujar(evento) {
        puedoDibujar = true;
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;
        if (x>=0 && x<=50){
            if (y>=0 && y<=50){
                color = 'red';
                puedoDibujar = false;
            }
        }
        if (x>=50 && x<=100){
            if (y>=0 && y<=50){
                color = 'green';
                puedoDibujar = false;
            }
        }
        if (x>=100 && x<=150){
            if (y>=0 && y<=50){
                color = 'yellow';
                puedoDibujar = false;
            }
        }
        escribirTexto(0,350,'black','Click');
        escribirTexto(0,300,'grey','███████████');
        escribirTexto(0,300,color,color);
    }
//----- Función para deshabilitar el dibujado
    function deshabilitarDibujar() {
        puedoDibujar = false;
        escribirTexto(0,350,'grey','███████████');
    }
//----- Dibujamos los cuadros de la paleta
    dibujarcuadro('red',0,0);
    dibujarcuadro('green',50,0);
    dibujarcuadro('yellow',100,0);
//----- Eventos del mouse sobre nuestro canvas
    pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;
    pantalla.onmousemove = dibujarCirculo;
</script>
</body>
</html>Lo unico que me falto validar bien, la zona de dibujado. Ya que evité que dibujara sobre la parte la paleta, pero hay una seccion (en gris) donde si debería poder dibujar, intenté condicionarlo con:
if (puedoDibujar && !x>=0 && !x<=150 && !y>=0 && !y=50)Si puedoDibujar es verdadero Y "X" no está entre 0 y 150 "Y" no está entre 0 y 50 ... dibuja.
Pero no pude validarlo, creo que necesito mejorar la lógica en ese aspecto, aunque no me gusta generar mucho código.