Otra observacion leo_star es que jamas cierras tu cursor te faltaria...
ademas me imagino que ocupas el cursor para otra cosa por que no entiendo para que haces un cursor a la tabla SYSTEM.CONTROL_PERMISOS y en el delete haces exactamente lo mismo
y con respecto al error que te manda creo k te funcionaria asi
'DELETE FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = '''|| v_user||'''';
CURSOR borra_usuario IS SELECT USUARIO, ROL FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = v_usuario;
BEGIN
OPEN borra_usuario;
LOOP
FETCH borra_usuario INTO v_user, v_rol;
EXIT WHEN borra_usuario%NOTFOUND;
consulta:= 'DELETE FROM SYSTEM.CONTROL_PERMISOS WHERE USUARIO = '|| v_user;
EXECUTE IMMEDIATE consulta;
END LOOP;
CLOSE borra_usuario;
COMMIT;
END BORRAR_ROLES_USUARIO;