It is an issue with shell substitution. I couldn't get it to work with a single argument, no matter what combination of quoting characters or escape characters I tried. it was breaking on the first space. So the error you got was discarding beginning with the second bla/bla. Playing around a bit, I got the following to work both in bash and ksh on my Mac.
Code:
#!/bin/bash
fn()
{
echo "==${1}==";
echo "==${2}==";
$1 "$2"
}
fn printf 'whataver thingy\n'
I added in the echo statements to get the feedback on what was going in to the function. Obviously, you can strip them out.