A maioria dos bancos de dados modernos (incluindo MySQL) são projetados para executar operações baseadas em conjuntos. O problema com os cursores é que eles executam operações baseadas em linhas (ou procedurais). Por causa disso, você quase sempre verá acertos de desempenho quando estiver usando cursores para fazer um trabalho que pode ser feito sem cursores em um DBMS moderno.
Dê uma olhada este artigo , que faz um trabalho decente passando por cima dos dois. Ele foi escrito com o SQL Server em mente, mas a maioria dos conceitos se aplica.