Great expectations: because it’s primarily focused on thresholding based alerting which never works with messy data. Because it doesn’t actually have any advanced metrics (like the Ks test above). Because it gives very minimal actual tooling. It doesn’t graph the metrics in any meaningful way. It doesn’t offer any tools to deal with metric fatigue. If not used correctly you end up hard coding thresholds in a way that’s annoying to modify so you just start ignoring all the alerts anyway.
Airflow - you’re still left to figure out how to run a single instance of the scheduler in a HA method because if you don’t then it has lower reliability than a cronjob in a Linux machine. And given everyone moving to snowflake like models you really don’t need what airflow offers viz. workers etc. Just something to run queries in a service.