It turns out this is because Three.js Meshes with PlaneGeometry currently don’t cast shadows by default, and the workarounds can introduce unwanted artefacts:
(Sorry for that duplicate thread, I forgot about this one!)
It’d be great to come up with a solution. I started some thought about it on GitHub.