Porque os cursores ocupam memória e criam bloqueios.
O que você está realmente fazendo é tentar forçar a tecnologia baseada em conjuntos para uma funcionalidade não baseada em conjuntos. E, com toda a justiça, devo salientar que os cursores fazem têm um uso, mas eles são desaprovados porque muitas pessoas que não estão acostumadas a usar soluções baseadas em conjuntos usam cursores em vez de descobrir a solução baseada em conjuntos.
Mas, quando você abre um cursor, você está basicamente carregando essas linhas na memória e bloqueando-as, criando blocos em potencial. Então, ao percorrer o cursor, você está fazendo alterações em outras tabelas e ainda mantendo toda a memória e bloqueios do cursor abertos.
Tudo isso tem o potencial de causar problemas de desempenho para outros usuários.
Portanto, como regra geral, os cursores são desaprovados. Especialmente se essa for a primeira solução encontrada para resolver um problema.