did you quote variables in cp call? unquoted vars undergo word splitting on spaces, so assuming file="a b c"; dest="d e f";
cp $file $dest becomes cp 'a' 'b' 'c' 'd' 'e' 'f', not cp 'a b c' 'd e f'
cp "$file" "$dest" would properly yield cp 'a b c' 'd e f'
in your case cp would try to find 2 files and of course fail: