Both "variable expansion" and "command substitution" are performed by the shell, with which you do not interact when running the smbclient , which in turn doesn't know anything about e.g. the shell variables.
You could try using a "here document":
Thanks Rudi. That's actually what I was trying. But it seems once within the smb commands it takes everything literally. Even with your suggestion, mkdir $(date) produces a folder called $(date)