Tethering is allowed - if you pay for a contract that allows it. And if you had a contract where you paid for your actual data usage, ISPs wouldn't have any reason to disallow tethering; actually they would want you to use it because more data used = more money.
However, nobody pays for their actual data usage. People pay for using "up to X GB per month". So the more data you use, the less money the ISP makes. Actually, since the average usage of people with an "up to 2 GB" contract for example is probably less than half of that amount, someone using the full 2 GB probably costs the ISP money.
Compare this to a restaurant where you buy for each bit of food that you eat - they don't mind if you bring your family and a dozen hungry friends and feed them, and they don't mind if you take food home either. Now take a restaurant with an "all you can eat" offer. They _do_ mind if you pay for one person and then feed your whole family and take food home as well. And that is what the ISPs do today.
The system actually has advantages; measuring your usage and sending you a bill for exactly that amount and handling complaints by people whose usage has been measured incorrectly or who think it has been measured incorrectly costs money, and the end user pays for that. And if the _average_ usage of "up to 2 GB" customers is say 1.03 GB, then changing to billing for the exact usage would mean that 1.03 GB actual data costs exactly as much as "up to 2 GB" costs today.