Muchos firewalls desconectan las conexiones salientes que no están en los puertos 80 o 443 (http & https); algunos incluso dejan caer conexiones a esos puertos que no son HTTP (S). FTP puede o no estar permitido, por no hablar de los modos activo / PASV.
Además, HTTP / 1.1 permite solicitudes parciales mucho mejores ("solo enviar desde el byte 123456 al final del archivo"), solicitudes condicionales y almacenamiento en caché ("solo enviar si el contenido cambió / si la última fecha de modificación modificada") y la compresión de contenido (gzip)
HTTP es mucho más fácil de usar a través de un proxy.
Según mi evidencia anecdótica, HTTP es más fácil de hacer con conexiones caídas / lentas / escamosas; por ejemplo, no es necesario (re) establecer una sesión de inicio de sesión antes de (re) iniciar la transferencia.
OTOH, HTTP no tiene estado, por lo que tendría que hacer la autenticación y crear un rastro de "quién hizo qué cuándo" usted mismo.
La única diferencia en velocidad que he notado es la transferencia de muchos archivos pequeños: HTTP con canalización es más rápido (reduce los viajes de ida y vuelta, especialmente en redes de alta latencia).
Tenga en cuenta que HTTP / 2 ofrece aún más optimizaciones, mientras que el protocolo FTP no ha visto ninguna actualización durante décadas (e incluso las extensiones a FTP tienen una aceptación insignificante por parte de los usuarios). Entonces, a menos que esté transfiriendo archivos a través de una máquina del tiempo, HTTP parece haber ganado.
(Tangencialmente: hay protocolos que son más adecuados para la transferencia de archivos, como rsync
BitTorrent, pero no tienen tanta participación mental, mientras que HTTP es Everywhere ™)