Acho que você esqueceu de incluir a seguinte linha no seu post:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
Seu código está correto, mas o comportamento de bug/estranho do mysql faz com que o aviso apareça mesmo que tenha sido tratado. Você pode evitar que, se adicionar uma instrução "fictícia" ao final do procedimento que envolve uma tabela e for bem-sucedida, isso limpará o aviso. (Veja http://dev.mysql.com/doc /refman/5.5/en/show-warnings.html )No seu caso:
SELECT name INTO l_name FROM customer_tbl LIMIT 1;
após o fim do loop. No MySQL 5.5.13 o aviso desaparece, no Linux e no Windows. Comentei no MySQL Bug 60840 e espero que eles consertem isso no futuro...