The CodeRush refactoring experience is faster and smoother (fewer keystrokes, fewer dialogs - zero, fewer mouse movements) than ReSharper's. When you rename or change a signature that impacts many unopened files on disk, CodeRush properly supports multi-file undo. By contrast, ReSharper presents a dialog asking if you want undo support for this Rename, and if you say yes, ReSharper proceeds to open all the files touched by the refactoring.
CodeRush has more refactorings than ReSharper, although ReSharper has a nice Move member to class refactoring that has yet to hit CodeRush. ReSharper also has a nice rename feature that lets you rename variables that contain a class name when you rename that class. For example, if I rename a "Spaceship" class to "Spacecraft", ReSharper finds identifiers with names like "superSpaceship" and suggests they be renamed to "superSpacecraft".
CodeRush is a little bit faster than ReSharper on Visual Studio startup and on project opens. ReSharper uses more memory, up to six times as much on really large solutions (e.g., 1000+ classes).
ReSharper reports more of the background code issues than CodeRush, and the code issues ReSharper shows are in general more useful (e.g., parameter type can be demoted to a class closer to object), however CodeRush includes a code issue that spots undisposed local variables that implement IDisposable which is very useful.
CodeRush ships significantly more code templates (like VS code snippets) than ReSharper, and CodeRush's templates are designed to be optimally efficient (for example, "ms" builds a method that returns a string, "vb" creates a variable of type bool, and "nl.i" creates a new initialized List). Your fingers benefit from the efficiency but the templates take some practice getting used to. The CodeRush training window can ease this learning curve if you have it up while you code. Interestingly, CodeRush templates effectively abstract away the programming language, so developers working in more than one language (or transitioning from one language to another) can press the same keystrokes and get essentially the same code, regardless of the language they are coding in.
ReSharper has a nice Intellisense replacement and an interesting parameter tool tip replacement. ReSharper has a variable name suggestion feature that is useful. ReSharper also has a code reformatting feature that is very nice.
CodeRush's TDD consume-first declaration features require fewer keystrokes than ReSharper's (see these in free CodeRush Xpress which includes most of the consume-first declaration features shipping in the full version of CodeRush).
ReSharper's find all references window has multiple panes for each search performed, which is nice. CodeRush provides only one pane for the last search performed. CodeRush has a neat Tab to Next Reference feature that takes you through all references to an identifier just by pressing the Tab key (Shift+Tab takes you back). CodeRush's Find All References appears faster than ReSharper's.
CodeRush's Unit Test Runner released in 9.3 supports more test frameworks out of the box (NUnit, MSTest, xUnit, and MbUnit). The CodeRush Test Runner also understands more of the framework attributes (for example NUnit's ExpectedException MatchType parameter) and also supports dynamically-generated tests (e.g., RowTests, the Values attribute, factories, theories, etc.). Support for test frameworks is extensible and CodeRush includes source code for each of the test framework plug-ins.