In my personal experience, expat is a term that's most frequently used to describe someone who is sent abroad by their firm, either on a temporary secondment or perhaps on an indefinite basis (c.f. "expat package" to describe a cost-of-living adjustment or other inducement).
That then shades into other meaning, which is one of someone living abroad that doesn't expect to stay, or retains a strong cultural connection with their home country, or doesn't mix with the local population (c.f. "expat ghetto" to describe a locale primarily inhabited or frequented by such people).
I don't know what the dictionary definition says, but I wouldn't say "immigrant" and "expat" mean the same thing to me.
That then shades into other meaning, which is one of someone living abroad that doesn't expect to stay, or retains a strong cultural connection with their home country, or doesn't mix with the local population (c.f. "expat ghetto" to describe a locale primarily inhabited or frequented by such people).
I don't know what the dictionary definition says, but I wouldn't say "immigrant" and "expat" mean the same thing to me.