Try adding quotes around your variable. This worked for me without any errors:
array=(one two three)
for I in ${array[@]}
do
if [ ! -d "$I" ]
then
mkdir -v "$I"
fi
done
mkdir: created directory �one'
mkdir: created directory �two'
mkdir: created directory �three'
Do you even need an array? Or a loop? mkdir can be fed more than one thing at a time, can be told to skip dirs that already exist with -p, and the shell automatically splits on spaces without the help of an array. So, you can do this all in one op without arrays.
DIRS="a b c"
if ! mkdir -v -p $DIRS
then
echo "Problem creating $DIRS"
exit 1
fi