I am not analytic expert. Checkout Analytics Index with IN - #2 by dmitry.lychagin
Can you rewrite as follows without repeatedly scan of the data?
WITH available_report_docs AS (
SELECT td.DocNum, td.`$MdfdTmstmp` AS timestamp
FROM tranData td
WHERE td.`$MdfdTmstmp` BETWEEN "{report_date}" and "{report_end_date}"
AND td.RteId = "{report_route}"
AND td.`$Type`="DailyReport"
UNION ALL
SELECT mch.DocNum, td.`$MdfdTmstmp` AS timestamp
FROM tranData td
UNNEST td.ActvCustOrdr AS mch
WHERE td.`$MdfdTmstmp` BETWEEN "{report_date}" and "{report_end_date}"
AND td.RteId = "{report_route}"
AND td.`$Type`="DailyReport"
),
available_cb_docs AS ( SELECT DISTINCT RAW c.DocNum
FROM available_report_docs AS c
WHERE c.timestamp BETWEEN "{previous_date}" and "{report_end_date}"),
available_daily_report_docs AS ( SELECT DISTINCT RAW c.DocNum FROM available_report_docs AS c)
SELECT ARRAY_SYMDIFF(available_daily_report_docs, available_cb_docs) AS cust_order_missing_docs;
adjust based on which date is earliest {previous_date} or “{report_date}”
If Analytic supports EXCEPT see if works for you
...............
SELECT RAW c1.DocNum FROM available_report_docs AS c1
EXCEPT
SELECT RAW c.DocNum FROM available_report_docs AS c WHERE c.timestamp BETWEEN "{previous_date}" and "{report_end_date}"