Na verdade, acabei de descobrir que posso fazer isso (não sei se é a melhor opção):
curl --data '@-' $'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random' <<< "$msg"
O truque é dizer ao curl para ler a partir de stdin @-
e depois passar a mensagem por meio disso.