Curt: it's because you haven't dealt with well-seeded torrents - and, perhaps, because you haven't had proper port-forwarding (which shouldn't matter with well-seeded stuff, but will hurt you badly with scarce and/or pirated stuff).
The protocol itself has several advantages to http/ftp... first, it's distributed - so you can saturate N links instead of 1. It has chunk-sized error detection and correction - with HTTP and FTP, you wont detect corruption unless you do an md5sum after downloading, and it's corrupt you'll have to regrab everything. With torrents, everything is broken into chunks (size can vary, but iirc chunksize is usually around 512kb).
Also, both HTTP and FTP *sucks* for small files - you need a new request for each file. For FTP it's really bad, for HTTP at least pipelining and keepalive mitigates stuff a bit... for torrents, you just keep on streaming (in a way that's not optimal for grabbing individual small files, but extremely superior for grabbing a wad of stuff).
Legitimate stuff has often sucked on torrents, though - a few years ago, I could grab linux ISOs a lot faster through HTTP than their torrent services - I guess they simply didn't hook up the entire http server bandwidth to their torrent protocol, which is pretty damn silly... after getting ~100kb/s (from random peers) for a few minutes, I'd cancel the download and hammer their HTTP servers directly at 4MB/s.