Generally, functions/methods are well written if they do only one thing but do it well.
When a method starts to exhibit nesting beyond 1 or 2 levels that's a sure sign it's trying to do more than one thing at once.
When there's a lot of nesting and conditionals in a function, it also makes its logic more convoluted and difficult to follow, as well as more difficult to test robustly.
Finally, if there's functionality buried deep into a nest in another method you can't reuse it easily. You'll have to cut and paste it where you want to use it (which always leads to a maintenance nightmare) or add some additional switch and another conditional to the hosting method (which just exacerbates the issue). If you refactor that functionality out into its own method reusing it is trivial.