Causality
A signal is causal if it only exists for $t \ge 0$.
A system is causal if the current output only depends on the current or prior inputs.
Problem
Say I have a transfer function that describes a certain system, $H(s) = \frac{N(s)}{D(s)} = \frac{(s+2)(s+1)}{s+10} $.
Clearly, the order of the numerator polynomial is greater than the denominator polynomial. If I try to find the impulse response (which is simply the inverse Laplace transform of $H(s)$) in MATLAB I get an error saying this system is non-causal.
Question: Why is a system where the order of $N(s)$ is greater than that of $D(s)$ non-causal? A non-causal system implies that its impulse response is non-causal (i.e. it exists before $t=0$), but why is this the case?

The relevant property is not causality but the fact that the system is improper. Your approach is too broad as you include all systems that send a distribution to a distribution. The additional desirable property is bounded input, bounded output (BIBO) stability. This is not the case for your system as the causal step response includes a Dirac delta.
Matlab solves numerically the system, so a signal must be smooth. If you check out the documentation (section "Algorithms" at the bottom), the system is converted into state space form. Reading this answer to Why can't an improper transfer function be realized?, you'll understand why your transfer function cannot be written in this form, hence the error message.
Btw, you're not the first one to encounter this error, and you'll find many other posts describing similar issues like: Pade Approximation of dead time.
Hope this helps.