From what you've posted I don't see anything odd. What O/S and shell are you using? What, if any, error messages are being written.
For what it is worth, when I create file and/or directory names using a command, I run the command once, and save the output in a variable using the contents for everything later. In your case, there shouldn't be any variable data in the output from date (as long as you didn't run command one at before midnight and the mv command after midnight), but it cannot hurt.
As an example:
targetd="/some/file/path/$(date "+%Y%m%d")"
if [[ ! -d $targetd ]]
then
mkdir $targetd
fi
mv /source/path/*.jpg $targetd/