To be able to insert `dd` in a pipeline before or after another command, its informational messages are written to standard error rather than to standard output.
The OpenBSD manual for `dd` explicitly mentions this (but the Ubuntu manual seems to omit this fact, but mentions it in the more complete `info` page):
> When finished, `dd` displays the number of complete and partial input and output blocks and truncated input records to the **standard error output**.
To redirect standard error from a command, use `2>filename`. To append the standard error stream to an already existing file without truncating it, use `2>>filename`.
For example:
dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>dd.txt
* * *
Note that you mix appending output in the first of your examples (using `>>`) with truncating output in your second example (using `tee`). To append to a file with `tee`, use `tee -a`.