An union type is the C attempt to implement something like sum types, that other languages extend a bit to literally implement sum types.
Those two words live on different contexts, as unions are about a memory usage pattern, and sum types are about conceptual software design, but they often go together on the same language feature.