The lack of competition is because up until recently, cable companies had monopolies in various areas; they'd laid the cable, they had the monopoly. Things are slowly changing now - and where there are actually two or more broadband options, prices are actually dropping. North Reading, MA broadband customers pay about $10 less a month than we do here in North Andover, MA. Why? Well, Verizon is now offering fiber optic broadband service there too - as well as DSL. Comcast is no longer the only player. In North Andover, many of us can't even get DSL, because we're too far from the switching station.
Still - we DO pay waaay more for our service than those in Japan etc. However, both the US and Canada also have huge geographic areas to cover at much lower densities, compared with Japan or most European countries, and that is going to make things more expensive.