Great question, Jeremy.
The problem with Cable is that many households share the same link to the Cable head end. So, even if the transmission rate of the bottleneck link from your household to the Cable head end is 20 Mbps, that does not mean that you can use all that transmission rate. If it happens that other households are using the Internet at the same time with you, then you will share those 20 Mbps with them, so you may end up getting much lower throughput than 20 Mbps.
In contrast, with DSL, the link from each household to the Central office is not shared by anyone.
So, in the end: a 20 Mbps Cable connection is better than an 18 Mbps DSL connection, but only when you are the only one in the neighbourhood who happens to be using the Internet at a particular moment.
Does this make sense?