Yes, Sparkplug is a "baseline" or non-optimizing compiler.
The V8 architecture is changing all the time, and I'm sure this answer will soon be out of date. I believe the addition of a non-optimizing compiler is a recent development, so this might be why you have heard V8 didn't have one. But this is my understanding of the current architecture.
The V8 engine has multiple ways to execute code. It has an interpreter, a baseline compiler (Sparkplug), and an optimizing compiler. The reason for the multiple strategies is a tradeoff between how long it takes to compile code and how long it takes to execute code. A slower compiler can generate more optimized code. But if a block of code is only executed once or a few times, an optimizing compiler might actually be a lot slower than an interpreter. So the engine shifts strategy based on how many times the code is executed.
But in all cases, the source code is first compiled into bytecode. The interpreter and the compilers all use this bytecode as input.
So the flow is more correctly illustrated like:
source code -> parser -> AST -> bytecode -|-> interpreter
|-> baseline compiler -> machine code
|-> optimizing compiler -> machine code
The term "compiler" is used both for the part transforming the source code into bytecode, and the parts transforming bytecode into machine code.
Bytecode is an intermediate format between source code and machine code. It is much lower level than source code, but not CPU specific like machine code. Bytecode is used because parsing source code is expensive, so there is no reason to do it more than once.
The interpreter does not compile the bytecode to machine code. It reads the bytecode instructions one at a time and executes the corresponding code. This has some overhead in reading and decoding each bytecode instruction, but the advantage is there is no separate compilation pass necessary, so it will be extremely fast to get started.