Since the "type" column makes the parts of the UNION
mutually exclusive, and since you are grouping on the "type" column, then the GROUP BY of the UNION
is the same as a UNION ALL of each part with a GROUP BY.

So this query could be:

CREATE VIEW test_view (fred, john, tom, qty, type)
AS (
SELECT col_a, col_b, col_c, SUM(col_d), 'Type A'
FROM table_1@remote_db
GROUP BY col_a, col_b, col_c
UNION ALL
SELECT col_1, col_2, col_3, SUM(col_4), 'Type B'
FROM table_2@remote_db
GROUP BY col_1, col_2, col_3;


Notice that each part of the UNION (including the GROUP BY)
can be processed by the remote database,
instead of performing the GROUP BY on the local side.