read utility takes at least one variable's name.
read implementation uses a default variable, like
REPLY, to store the read data if no name is supplied, but
dash, aiming to be a POSIX compliant shell, does not (as it's not required to do so by the standard). The equivalent in the
dash shell would be
bash shell, even in its POSIX mode, does keep some non-POSIX features enabled. This is one of them, which means that
read with no variable's name will work even if you run a
bash --posix shell.
For a full list of things that happens when you enable POSIX mode in
bash (which this question really isn't about), see https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html