This is not just for local drive transfers. I've even noticed that when pushing or pulling files to servers, or simply uploading to a service like Google Drive, it is usually significantly faster to zip up many small files (even using just the "store" ZIP option), transfer them, and then unzip them.
If this is the case, why don't most services (like rsync, Windows/macOS file transfer, etc.) that do this automatically? For example, if the user is trying to transfer more than 1000x files of very small size, automatically "zip up" the files to a temporary location, transfer them, and then unzip them? Or maybe do this "on the fly" so that it doesn't take up unnecessary disk space?