Server side move of a large number of subdirectories to a new directory?

operations/movefile is limited to a file, that's correct. sync/move, on the other hand, is the direct equivalent of rclone move, so, by default it will move everything in the srcFs, but there's no reason you couldn't filter this down to individual files if you wanted to.

You could use filter rules to include/exclude specific subdirectories (think --filter-from, not --files-from) (and shameless plug for my own genfilters tool to help generate them)

However, in your specific case, I think you'd be better off keeping your loop. The reason is because sync/move behaves differently when filters are in use. Without filters, you can take advantage of server-side moving at the directory level, if supported by your remote. Whereas if any filters are in use, it will server-side move each individual file in the directory. The end result should be the same, but it's not as efficient.