The biggest difference is you dont need to add debug code deploy, you just connect.
For things like the network traffic it is really hard to see request/response for a particular thing.
For the dumpers - those are basically a main method inside your program that you can run whenever. Its a nice way to change (or dump) state of the program, similar to adb shell dumpsys, but also allows a richer interface for changing state.