It's a question of words being able to mean more than one thing.
"Asian" is the same. He wasn't born in Asia, so why call him Asian? Well, because it's his ethnicity.
English could be someone who is English in ethnicity, or also someone born in or possibly resident in England. I am in part English, as in, my ethnic ancestry is partly English, I was not born in England.
People are not consistent in how they use these words, and that's just as much on the progressive left. They tend not to want to call a white person born in Asia Asian, for example. It can be a reflection of racism by whites, but denying the possibility that a white person can be English ethnically, or Asia (or African) by birth is a kind of left racism.