The shardCollection command may drop the collection if there's a stepDown while it is running. Currently, this results in a drop collection event in change stream even though the collection isn't dropped from the user's perspective. I think if this drop is marked as fromMigrate: true, then it will skipped by change stream. And I think this is a more correct behavior.
With this spurious drop, it is very difficult/confusing for downstream to use change streams.