When you do:
for token in ${stringTokens[@]}
The loop effectively becomes:
for token in a string with some single quotes in it
The for loop does not parse the array element-wise, but it parses the entire output of the string separated by spaces.
Instead try:
for token in "${stringTokens[@]}";
do
echo "$token"
done
This will be equivalent to:
for token in "in a string with some " "single" " quotes in it"
Output on my PC:
a string with some
single
quotes in it
Check this out for more Bash Pitfalls: http://mywiki.wooledge.org/BashPitfalls