This performance hit is caused by grab-to-pan.js, a library I've written for PDF.js to implement the Hand Tool feature. When the mouse is pressed, the library toggles a class name on the <html>
element, to change the cursor (from "grab" to "grabbing") via CSS:
.grab-to-pan-grabbing * {
cursor: url("grabbing.cur"), move !important;
cursor: -webkit-grabbing !important;
cursor: -moz-grabbing !important;
cursor: grabbing !important;
}
This method appears to have a significant effect on performance, so I have changed the way of updating the cursor. See https://github.com/Rob--W/grab-to-pan.js/commit/e0f893753ac10a5c97159fd01155b05d234f4c0f for the changes. A few tests shows that the new method is over 100 times faster. I've submitted the patch to PDF.js as PR #4209.