Since this seems to be a popular question, a highlight of the most important differences:
- Waterfox is a straight-up recompile of the Firefox source code for 64-bit systems with minimal changes. Pale Moon has individual development both under the hood and in the user interface. Developments in Pale Moon include added features, removed features, reinstatement of features removed from later Firefox versions, and certain code changes for optimization.
- Pale Moon is compiled with the Microsoft Visual C compiler (just like Firefox), Waterfox is compiled with the Intel C compiler.
The result is that Waterfox may run into different compiler errors not accounted for in Firefox (designed for MSVC and GCC but not ICC), as well as the more important point of having actively crippled (slower) execution on any processor that is not "GenuineIntel".
- Waterfox is a 64-bit only project (32-bit would have debatable use since it is exactly the same as Firefox otherwise). Pale Moon offers both 32-bit and 64-bit versions of the browser. For plugins, Waterfox is therefore less compatible as an alternative browser, since the list of available native 64-bit plugins is (very) short. The same restriction applies to Pale Moon x64, of course, but since both platforms are available you have an option to run your preferred one (I personally run the x86 version on 64-bit windows because I need to use 32-bit authentication plugins, for example).
- Pale Moon's release schedule is independent of Mozilla's rapid release schedule of Firefox, and security/stability fixes of Firefox releases are implemented in Pale Moon for as far as they apply to both the browser code base and the operating system Pale Moon is designed for. As a result, version numbering of Pale Moon is different, and there is no "straight up comparison" of version numbers between Pale Moon and the Firefox/Waterfox pair. Major version numbers (12.*, 15.*) are kept for the major version of the gecko toolkit the browser is based on, for minimizing compatibility issues with add-ons to the browser; it's common practice to check the application version and not the toolkit version for compatibility.