In RHEL8 you have the concept of modularity
Module streams can distribute packages with lower versions than available in the repositories available to the operating system. To make such packages available for installs and upgrades, the non-modular packages are filtered out when they match by name with modular packages from any existing stream.
What is happening here is that containerd packages are “providing” runc but are non-modular, and RHEL8 also has a runc package that is modular.
Before modular packages (RHEL7) if you install containerd, then install podman, podman will use containerd runc so you might have weird bug. Now dnf prevents that, but without a good error message.