As you say, non-degenerate codes have a lot of well-understood machinery that's brought in from the classical side. That helps us from a conceptual stance, and a mathematical one (making rigorous results easier to prove), although, in terms of practical implementation, doesn't necessarily mean that one is easier to implement than the other.
Errors in a degenerate code do not need to be any harder to detect. For example, if you look at the Toric Code, this is degenerate but it's also a stabilizer code, so experimentally, it's just the same. If anything, it's easier because all the observables that we need to measure are local, each comprising just four neighbouring qubits.
Why might you prefer non-degenerate models? I think, really, it comes down to the rigour of the mathematics behind some of the results. For example, things like the quantum Hamming bound apply to non-degenerate codes. We know where we stand. Actually, that gives degenerate codes a potential advantage in that they might be better than the non-degenerate ones. It's just hard to prove. I gave some numerical indications of this at some point for the Toric code: https://arxiv.org/abs/1208.4924. I think I also linked to some previous results for other degenerate codes.
To give an indication of the challenge with the Toric code: an $N\times N$ lattice has a code distance $O(N)$, while there exist non-degenerate codes of the same size with distance $O(N^2)$. So, on paper, this looks bad for degenerate codes. Nevertheless, one can prove (with some effort) that if the error model is independent per-qubit errors, you can correct for an error rate that is finite, i.e. almost all combinations of $O(N^2)$ errors (up to some threshold value) that might typically arise can be corrected. So, we know some of these statements for the Toric code, but let's say you've come up with some wonderful knew degenerate code. How does it behave? No clue! But if you come up with a wonderful new non-degenerate code, you can immediately know a lot of its properties.