Veja no GitHub que o compilador de Rust é escrito na própria linguagem (mais de 96% do código é Rust, e nada de C++).
Este compilador gera o código intermediário do LLVM, que por sua vez gera o executável - o processo todo é descrito aqui.
Para entender como o compilador de uma linguagem pode ser escrito nela mesma, leia aqui (o link é sobre Java, mas a ideia geral é a mesma para qualquer linguagem).
De qualquer forma, não é a linguagem em que o compilador foi escrito que determina a "velocidade", e sim o que/como a linguagem faz as coisas. Por exemplo, a implementação atual do Python é escrita em C, mas muitas coisas em Python não chegam na mesma velocidade do C porque a linguagem tem um overhead interno - como o fato de cada valor (seja número, string, etc) ser um objeto complexo: uma simples soma de dois números resulta na chamada de um método.
O mesmo vale para qualquer linguagem.