サブクエリはまったく相関していません。サブクエリの識別子 "TableA.key" は、サブクエリの FROM 句の TableA を参照しており、更新のターゲット テーブル (たまたま TableA でもあります) ではありません。 2 つのテーブルの結合の結果セットで TableA.field を更新したくありません。これが欲しいだけです:
UPDATE TableA
SET TableA.field = (SELECT TableB.field
FROM TableB
WHERE TableA.key = TableB.key)