I think compiler is the wrong way to describe this. A computer program that translates between two different high level languages is typically called a language translator.
Yeah, a compiler is anything that translates from one programming language to another. The definition of a "high level language" is muddy these days - is C a high-level language? It's a compiler target for Scheme, Haskell, Goo, Python, and many other programming languages these days. It's also a source language for gcc, Clang, and numerous other C compilers.
The technical term is "transpiler". However, people tend to use "compiler" interchangeably without much confusion.
Wouldn't "preprocessor" be a more accurate description?
No. A preprocessor usually translates into the same or a very similar language.