I think I figured it out with the help of this reference:
Looks like the original and effective logons from the job are the service account, but the effective database user is dbo. In comparison, when I impersonate the service account, the original logon is my account and the effective logon and database user are the service account.
For now, I overcame this by setting up the job step to execute as the service account in the advanced options of the job step properties.