On updatable materialized views - yes, if they use the
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_mview.htm#CEGHBIBJ I_AM_A_REFRESH function so as to not fire during a refresh.
See:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7004.htm#sthref7906 "Note:
If you create a trigger on a base table of a materialized view, then you must ensure that the trigger does not fire during a refresh of the materialized view. During refresh, the DBMS_MVIEW procedure I_AM_A_REFRESH returns TRUE."
which effectively means that for a read only materialized view, the only time the trigger would fire would be during the refresh process - and you would have logic that causes your trigger to just exit at that point (it would never do anything)
Triggers on a read only materialized view might appear to work - but you cannot rely on them working.
An update of a row in a materialized view might be done as a DELETE+INSERT.
A refresh of a materialized view might involve a delete + insert of every row.
A refresh might involve a truncate plus direct path load of ever row.
(the last two will probably happen sometime, you would lose anything your trigger had done in the past)
You do not know how we refresh, it would be a very shaky proposition to have a trigger on a read only materialized view - I would not recommend it.