Viendo la solución planteada por el instrucotr este codigo se puede optimzar pero igualmente comparto mi solucion
<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 dibujarCirculo(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
function dibujarHaciaDerecha(){
limpiarPantalla()
dibujarCirculo(x,20,10)
x+=20
}
function dibujarHaciaIzquierda(){
limpiarPantalla()
dibujarCirculo(x,20,10)
x-=20
}
var contador = 0
function actualizarPantalla(){
if(contador < 30){
dibujarHaciaDerecha()
contador++
}
else{
dibujarHaciaIzquierda()
contador++
if(contador == 60){
contador = 0
}
}
}
setInterval(actualizarPantalla,500)
</script>