1) No copy feature. There is no way to duplicate the file the file on the server for backup, testing or any other purposes. You have to download the file and upload it to another location, which is quite a hassle especially for large number of files. One would think that this is a common feature that should be present, unfortunately not so.
2) No zip/unzip support. For CMSes like wordpress with thousands of small files, if your webhost only provides FTP, it can take almost an hour to upload less than 100MB. It is exponentially faster if you have access to a shell and upload the zipped version.
3) Downloading content via FTP and HTTP is roughly equal in terms of speed. As HTTP is more common, it is less likely to run into problems compared to FTP.
4) Largest Problem of all. Zero encryption. Passwords + Data transmitted in plain text. And people including me use it to transfer config files with db passwords and admin passwords for CMSes in them. (Note I am not willingly using FTP, only because the webhost does NOT provide any other options)