acá les comparto mi solución al problema y le agregue que cuando llega al final aparte de volver que vaya bajando y cuando llega al final vuelve al principio
<canvas width="600" height="400"> </canvas>
<script>
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = "lightgrey";
pincel.fillRect(0,0,600,400);
function disenharCircunferencia(x,y,radio){
pincel.fillStyle = "blue";
pincel.beginPath();
pincel.arc(x,y,radio,0,2*Math.PI);
pincel.fill();
}
function limpiarPantalla(){
pincel.clearRect(0,0,600,400);
}
var x =11;
var y = 11;
var sentido=0;
function actualizarPantalla(){
if(y<390){
if(sentido==0){
limpiarPantalla();
if(x < 590){
disenharCircunferencia(x,y,10);
x++;
}else{
sentido=1;
y=y+10;
}
}
if(sentido==1){
limpiarPantalla();
if(x > 10){
disenharCircunferencia(x,y,10);
x--;
}else{
sentido=0;
y=y+10;
}
}
}else{
x=10;
y=10;
sentido = 0;
}
}
setInterval(actualizarPantalla,1);
</script>