I don't know how the Rust compiler is built. However, I am implementing an Ownership/Borrowing system for the D programming language, and to make it work requires Data Flow Analysis. DFA is slow. It's normally only used for optimized builds, which is why optimized builds are slow.
But when DFA is a required semantic feature of the language, it has to be done for debug builds, too, and so they're going to be slow.