You cannot cancel it because you don't know if a-b is positive or negative. So let's say a=3, b=5, c=1, and d=2, then c(a-b)=1(3-5)=-2 and d(a-b)=2(3-5)=-4
So, it is certainly true that c(a-b)>d(a-b) because -2>-4. However, if we have 1(-2)>2(-2) and we just divide out the -2, we have 1>2, which is most certainly not true. The cancellation failed to produce an equivalent statement because we divided both sides by a negative number. The rule is that every time you multiply or divide both sides of an inequality by a negative number you have to flip the direction of the inequality sign.
However, if we let c=2, d=1, a=5, b=3, then again we have c(a-b)>d(a-b) because 2(2)>1(2). This time if we divide out the 2, we have 2>1, which IS true. So in this case the cancellation produced a true, equivalent expression.
Any time you do any kind of legitimate simplification or cancellation you're essentially saying, "this new form is exactly equivalent to the old form" Not identical, but equivalent. For example, x+x+x is always equal to 3x. We prefer to write 3x because it is simpler and more concise than x+x+x. It is not identical. But it is equivalent in every way that we care about.
With c(a-b)>d(a-b), we would love to be able to get rid of the (a-b) because it would make the expression a lot simpler to deal with. The trouble is we don't know if it's a legitimate cancellation or not. When you start with c(a-b)>d(a-b) and you cancel out the a-b by dividing it out to get c>d, that's like saying, "okay, c(a-b)>d(a-b) really just means that c>d" but this is not necessarily true. It's true if a-b is positive, but it is not true if a-b is negative. And without any information about the values of a or b, it is impossible to know if this is a legitimate cancellation or not.