A one-pass compiler is a compiler that passes through the source code of each compilation unit only once. A multi-pass compiler is a type of compiler that processes the source code or abstract syntax tree of a program several times.
A one-pass compilers is faster than multi-pass compilers
A one-pass compiler has limited scope of passes but multi-pass compiler has wide scope of passes.
Multi-pass compilers are sometimes called wide compilers where as one-pass compiler are sometimes called narrow compiler.
Many programming languages cannot be represented with a single pass compilers, for example Pascal can be implemented with a single pass compiler where as languages like Java require a multi-pass compiler.