The reason you discard them is because this makes distillation much more efficient.
For example, consider 15-to-1 T state distillation using the Reed-Solomon code. This code has distance 3, so you can either correct 1 error or detect 2 errors.
If you choose to correct 1 error, then you fail when there are a pair errors. There are ${15 \choose 2} = 105$ such pairs of errors, so for an input failure chance $p$ your output failure chance will be $105p^2$. Your discard rate will be $0$.
If you choose to detect 2 errors, then you fail when there are a triplet of errors that exactly move you between code points. There are 35 such triplets. So for an input failure chance $p$ your output failure chance will be $35p^3$. Your discard rate will be around $15p$.
Example
Suppose your input error rate is $p=10^{-3}$ and you want to get to a target error rate of $10^{-12}$. When correcting your error rates progress as follows:
$p \rightarrow 105p^2 \rightarrow 105^3 p^4 \rightarrow 105^7 p^8 \rightarrow 105^{15} p^{16}$
$10^{-3} \rightarrow \approx 10^{-4} \rightarrow \approx 10^{-6} \rightarrow \approx 10^{-10} \rightarrow \approx 10^{-18}$
When detecting your error rates progress as follows:
$p \rightarrow 35p^3 \rightarrow 35^4 p^9$
$10^{-3} \rightarrow \approx 10^{-8} \rightarrow \approx 10^{-21}$
When using correction, you go through four stages of distillation, so you get 1 good output for every $15^4=50625$ inputs.
When using detection, you go through two stages of distillation. By far the dominant source of loss is a first stage failing. That happens about 1.5% of the time and forces you to get 15 more T states. Ultimately you get 1 good output for approximately every $230$ inputs.
So there you go. The reason we use detection instead of correction is because its a solid >100 times more efficient when considering plausible starting error rates.