Tendrias que incluir todo el codigo dentro de la sentencia exec para que funcione el cursor, ya que este se ejecuta en otro contexto.
Pero si vas a hacer esto, creo que se podria eliminar el cursor.. haciendo el delete con un join...algo como
Código:
Delete Tmp_Proveedores
where color = 'Azul' and IdProveedor in (Select Id_Proveedor
from _TmpProveedores
Group By Id_Proveedor Having count(Id_Proveedor) > 1)
Solo agregale la parte variable.

Saludos!