"If you install and run Linux on an disk formatted for Fat32 or NTFS"
afik, this can't be done
Linux can be installed and run on a FAT16 or FAT32 with either the syslinux bootloader or the loadlin.exe Windows executable. The syslinux is the easiest to do, and probably runs better on FAT16.
From what I can tell, e3defrag is a userspace utility that requires certain kernel modules to be in place. The Shake defragmenter is a userspace utility that needs no kernel special modules.
What I find interesting about Con Kolivas's script is that it reorders the files on a partition by size from the largest to the smallest. It is also filesystem "agnostic" in that it should work on any filesystem type. I also find his comment in the script interesting:
"Are you really crazy enough to be using this? It might blow your data into tiny little useless chunks."
The xfs filesystem has a defrag utility, xfs_fsr, as part of the filesystem tools. It will safely execute even if the filesystem is mounted and in use.