Normalmente, você não pode evitar o loop, pois está chamando EXEC, o que não pode ser feito como uma operação baseada em SET; tem que ser feito um por um.
Se você quer apenas evitar o CURSOR em geral, você pode implementá-lo usando um loop WHILE.
Caso contrário, outra opção é usar uma instrução SELECT + FOR XML que constrói as instruções EXEC como uma única instrução NVARCHAR(MAX) em uma variável, então EXEC apenas esse SQL dinâmico.