Simple Update Join much slower than it should be (MYSQL)
Maybe:
UPDATE A
    SET A.active = 1
    WHERE A.date &gt;= '2020-01-01'
      AND ( EXISTS ( SELECT 1 FROM B WHERE B.id = A.id ) )

What is the datatype of date?  If it is DATE, you were excluding New Year's Day.
I'm assuming that id is the PRIMARY KEY if each table.  But, given that, I must ask why you have two tables with the same PK -- That is usually poor schema design.  (There are exceptions.)  Furthermore, INDEX(id, date) is probably useless.
Needed:  A:  INDEX(date).  Even so, that might be ignored, depending on the data distribution.  Please provide SHOW CREATE TABLE and EXPLAIN UPDATE ...