Got the solution:
WEBROOTMAP="{\"${vhostname}\": \"/home/nginx/domains/${vhostname}/public\"}"
(without the single quotes)
And for the CLI:
letsencrypt certonly --text --agree-tos --renew-by-default --test-cert --email ${EMAIL} --user-agent centminmod-centos6-webroot --csr /usr/local/nginx/conf/ssl/${vhostname}/${vhostname}-csr-p384.der --webroot --webroot-map "$WEBROOTMAP"
Double quotes around $WEBROOTMAP
. Apparently, you’ve got to encase the variable on the command line between quotes and not in the variable itself and single quotes will prevent the parsing of the variable to the value: double quotes do not prevent this parsing.