Bash script for creating symbolic links
When running into troubles with shell quoting, it always help to add echo statements in suitable places in your script to see what's going on.

Let's look at this line by line:

for f in /Volumes/Server\ RAID/Photos;


This only runs once, and sets f to Volumes/Server RAID/Photos, which probably isn't what you want.

do ln -s /Volumes/Server\ RAID/Photos/"$f"/Final


f is set to the full path (see above), so this expands to

ln -s /Volumes/Server\ RAID/Photos//Volumes/Server\ RAID/Photos/Final


which (again) is not what you want to see here.

mv Final $f


See above :-)

There are various ways to tackle this, but in your case I would to something like the following (to get around the challenge of having to extract the directory name from the source path)

cd /Volumes/Server\ RAID/Photos/
for f in *; do
    if [ -d "$f" ]; then 
        if [ -d "$f"/Final ]; then
            ln -s "/Volumes/Server RAID/Photos/$f/Final" ~/Desktop/"$f"
        fi
    fi
done


The two ifs cover the cases where there are files in the source directory or the Final directory is missing.