What debugger are you using? I've found the PICkits to be unbearably slow. ICD3 is much better and ICD4 is better still.
I have several PICKit 3's and several ICD3's, along with one PICKit4 and one ICD4. I haven't used the PICKit 4 enough to really gauge it's speed, but definitely the PICKit 3's are very noticeably slower than the ICD3. And the ICD3 isn't as fast as the ICD4. Both the PICKit 4 and ICD4 are incompatible with MPLAB, AFAIK, being they were introduced after the last version of MPLAB was released. So the PICKit 4 and ICD4 are only used with MPLAB-X, meaning comparing MPLAB with MPLAB-X is only meaningful for me with regard to PICKit3 and ICD3. I've not actually sat down and timed them, but just from what I feel is the situation based on real-life use, there's two parts of concern: the initial handshake/initializing and then the actual hex file download. The actual hex file download I believe is the same between MPLAB and MPLAB-X, and is highly dependent on the size of the hex file and whether using PICKit3 or ICD3. For the initial handshake/checking, it seems relatively similar between PICKit3 and ICD3. But between MPLAB and MPLAB-X, MPLAB is very quick, and MPLAB-X is very slow. That is where my big complaint is about MPLAB-X.
I have a few projects running on a graphics PIC32MZ, with the hex file being multiple megabytes. This is painfully slow on a PICKit. And noticeably faster on the ICD4 compared to ICD3, so I use the ICD4 in those cases, along with MPLAB-X, being MPLAB doesn't support the PIC32MZ. By far, the majority of the download time is in the actual hex file data being transferred, not in the handshake/initialization. Most of my projects though are much smaller, with hex files in the 1 to 30KB range. For smaller hex files, the slow handshake/initialization of MPLAB-X dominates, and is a significant factor in my edit/compile/download/debug cycle for issues that involve minimal editing/thinking. This type of work is very common when I'm dealing with Microchip MCU work. Thus it's one of my major complaints with MPLAB-X. Furthermore, if the debugger becomes disconnected from the PC (USB interface), MPLAB-X comes up with a dialog box, and if you do the default/intuitive action, it then automatically rebuilds your entire project, further exasperating things, as it ads even more time. I finally figured out recently that if I cancel that, then just download again, it doesn't recompile, but why it thinks it needs to recompile otherwise, I'll never know. This problem happens very frequently because on the ICD4 they made a poor decision to use a USB Mini connector rather than the USB B on the ICD3. At least on my ICD4, as well as lots of USB Mini gear, the connection is not tight and frequently comes disconnected. Perhaps my ICD4 is defective, as it seems to happen much more frequently on it than on any other USB Mini gear I own. It can happen dozens of times in a day. MPLAB with the ICD3 or PICKit 3 handles well if the connection is disconnected. MPLAB-X handles any debugger being disconnected very poorly.