Tokens carry intent
A lexer turns characters into named pieces such as identifiers, numbers, and operators. That vocabulary gives the parser a stable surface and gives errors a useful location.
Token boundaries also reduce the number of questions the parser has to answer. Once whitespace, keywords, and literal shapes have been handled, the parser can focus on relationships between tokens rather than individual characters.
Good errors start early
Rejecting an unknown character at the lexer boundary is clearer than allowing it to become a confusing parser failure later. Small, precise diagnostics are one of the first user experiences a language provides.
Designing for change
A useful lexer is strict about malformed input but uncomplicated to extend. Adding a new operator should change a focused part of the token rules, not force the whole compiler to understand raw source text again.