Grande Paulão!
Um detalhe para você dar uma revisada:
O método CursorFill() do CursorAdapter, quando este está dentro de um ambiente de dados, é chamado pelo método "AutoOpen()" do CA. Mas isso só ocorre quando a propriedade "AutoOpenTables" do Ambiente de Dados tem o valor .T.
Como está isto no seu ambiente aí?
OBS.: Fiz os mesmos testes aqui usando fontes de dados ODBC e OLEDB e funcionou corretamente!
Um abraço!