I wrote this tutorial for an older version of Docker, but the concept of build containers is the same. Except that buildkit creates these containers differently and you don’t see them using docker commands.
In short:
A build container is a container that is created by every instruction in the Dockerfile (at least it was the case). When you use the RUN instruction, it creates a container, runs the command, commits the container to an image layer.