
That statement was my motivation for this post. I wanted to clear up this misconception about jQuery, and hopefully, give you the ability to write the best and fastest scripts possible.
The most important thing to remember about jQuery is that it is a library. Every time you call a jQuery function, that function must be found in the library, and then executed. If the function you're calling is something that can be done in native javascript, there is a lot of overhead by using jQuery. One example is the .html() function. Since there is an innerHTML property, using .html() will take longer to execute (about 7 times longer, in fact). A few milliseconds may not seem like much, but if you're using this function a couple hundred times in a script, you've forced your users to wait an additional two seconds for your page to load! The worst offenders I've found in jQuery are the .each(), .contains(), and .animate() functions. Instead, by using for/while loops, the innerHTML and style properties, and the indexOf and setTimeout methods, you will greatly speed up your scripts. Another offender is selecting a single class name, such as $('.class') -- you should be using document.getElementsByClassName instead, though note that IE7 doesn't support this native javascript method.
jQuery is great with selectors, AJAX, and several traversing/manipulation functions. It also solves a number of compatibility issues with IE7, but these days, any serious HTML/CSS/script developer should be using IE8 as their minimum level of support (see above for one example). Using the parts of jQuery where it's useful, and native javascript where it's not, will result in feature-rich and fast code. And that's what we all want, right?

Happy coding!