Because it gets messy very soon. To start with, you would have to pick a set of distributions that is closed under the set of operations you want to perform.
If you pick 'all normal distributions' as your set, that means that you can only allow addition, subtraction, and multiplication by a constant (= a normal distribution with zero variance); you won't be able to compute x^2, take a square root, compute |x|, etc. That rules out, for example, computing the variance of a set of inexactly known numbers.
To make matters worse, to do this really well, you have to track where values come from. You really want:
x = 6±3.5m
z = x - x
to have z equal to 0±0m, but
x = 6±3.5m
y = 6±3.5m
z = x - y
to have z equal to 0±4.9m. Similarly, x+x should be 12±7m, and x+y should be 12±4.9m
The best you probably can do is to forget about the second issue, and do interval arithmetic. That is useful, but gives you extremely pessimistic results.
Edit: a good solution also would resolve the question of how to handle conditionals. if x > 0 could pick each of its branches according to the probability that x is larger than zero, or even execute both branches partially (whatever that would mean), according to the distribution of x.