Você pode combinar a expansão de parâmetros com a expansão de chaves.
% foo=(d e f)
$ echo {a,b,c}${^foo}
ad bd cd ae be ce af bf cf
Se você não quiser definir foo separadamente (como parece provável), você pode usar o seguinte:
$ echo {a,b,c}${^:-d e f}
ad bd cd ae be ce af bf cf
Se você tiver a opção rcexpandparam definida, não será necessário o ^ nos dois exemplos para ativar esse comportamento.
(Nota: durante o teste, também tive a opção shwordsplit definida. Se você não tiver definido, tente, por exemplo echo {a,b,c}${^=:-d e f} . Moral da história: quase tudo é possível em zsh , mas você precisa ter certeza de que está usando a combinação correta de opções e sintaxe.)