That may be technically correct, but that is unfortunately not the common usage. Regardless of how long you intend to stay in a country, people from the non white countries are almost always called immigrants. I've almost never heard an H1B worker called an expat instead of an immigrant.
I don't know anything about H1Bs, but I've worked with a number of foreign (non-US) multi-nationals, and their executives that are sent on a tour to run their US subs are indeed called (by USians and by the home office) "expats" (or "expatriates").
It might be an executive thing?
(This would include companies like Sony, Nomura, Toshiba, Honda, BMW or even Saudi Aramco - all having US subs)
Most H1s are expats — however, in almost any H1 forum or being around H1s for any amount of time, inevitably they talk about getting their green card and citizenship. Countless stories, even on HN about how unfair the green card process is for H1s. You almost never have Germans in Shanghai discussing strategies for gaining Chinese citizenship. Many, many H1s are in the US because they specifically want to permanently settle here — that makes them (attempted) immigrants.
When I was in China, the Indians working tech there were referred to as expats just like the Germans and British — because they didn’t have any intent to permantly relocate to China.
Not everything is a racist conspiracy. Intent of the foreigner is the key factor in their expat vs. immigrant status. Generally people immigrate from poor to rich countries, because they would prefer to live permenantly in a nicer place. Immigration the other way around is quite rare. Not a lot of British are clamoring to immigrate to Bangladesh: a Brit working there would rarely be called an immigrant because they aren’t. They’re an expat. They have no intent to make Bangladesh their home. A Bangladeshi on an H1 visa almost always has a green card and eventually citizenship as their goal: thus they would be immigrants.