Doubles quotes should be at the beginning of the string.
'some string "$var" somestring' // won't interpolate
"some string '$var' somestring" // will interpolate
or you can concatenate them to the string
exec('../ems-scripts/mass-email-send.sh ' . $subject . ' ' . $body, $output)
You can read this discussion Should I use curly brackets or concatenate variables within strings? your problem is more about variable concatenation and interpolation, than really about exec()
and shell_exec()