Which is faster? Multiple update queries in a cursor loop, or a single query?
Neither -- You need to present a 3rd option.

Option 1 is slow because it is going back and forth between the Stored Routine and the server.  (This is not as bad as between the Client and Server, but it is still extra effort.)

Option 2 is slow because of the tmp table and subquery.

Option 3 is something like

UPDATE   table2
    JOIN table1  ON table1.id = table2.id
    SET   table2.column = 0
    WHERE table1.column = 0;


(I assume id is the PRIMARY KEY in each table?)

Important:  table1 needs INDEX(column).

See "multi-table update" in the online reference manual.