Este fue mi código para resolverlo, se me hizo más sencillo de esa forma:
<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 = 0;
var reversa = 600;
function actualizarPantalla() {
if (x < 600) {
limpiarPantalla();
disenharCircunferencia(x, 20, 10);
x++;
reversa = 600;
} else {
limpiarPantalla();
disenharCircunferencia(reversa, 20, 10);
reversa--;
if (reversa < 0) {
x = 0;
}
}
}
setInterval(actualizarPantalla, 5);
</script>