Fala ai Daniel, você não postou o código completo, esta faltando as algumas funções como desenha e limpaTela, peguei seu código e implementei elas, segue abaixo:
<meta charset="UTF-8">
<canvas id="tela" width="600" height="400"></canvas>
<script>
var circulo = function(x, y, raio) {
c.fillStyle = "blue";
c.beginPath();
c.arc(x, y, raio, 0, 2*Math.PI);
c.fill();
};
var limpaTela = function() {
c.clearRect(0, 0, 600, 400);
};
var x = 1;
var desenha = function() {
limpaTela();
desenhaImagem(x, 200);
x = x + 1;
};
var tela = document.getElementById("tela");
var c = tela.getContext("2d");
var imagem = new Image();
imagem.src = "http://www.caelum.com.br/imagens/instrutores/fotos/paulo-silveira-90.jpg";
var desenhaImagem = function(x, y) {
c.drawImage(imagem, x, y)
};
setInterval(desenha, 30);
</script>
Da uma conferida ai para ver o que esta diferente do seu, talvez faltou você mudar na função desenha para começar a chamar o desenhaImagem e não o circulo.