dogfight vs. dog fighting

When a noun is used as the head of a compound, its meaning doesn't generally change too much. A dogfight is a kind of fight, and dog fighting is a kind of fighting.

There's a difference in meaning between fight and fighting. The word fight is used as a count noun that often refers to a specific single event. The word fighting, when it is used as a noun and not as a gerund/participle, is typically a non-count noun that refers to the action or activity of fighting in a general sense. That kind of non-count, abstract sense is usual for -ing nouns: there's a similar difference in meaning between the nouns jump and jumping, run and running, play and playing, walk and walking. If you already know all this and are asking why -ing nouns typically have this kind of abstract meaning, I don't know how to answer that. There certainly are some -ing nouns that can be used as count nouns that refer to an event: e.g. a whipping, an unmasking. But for whatever reason, we don't use *a fighting like this.

The OED indicates that the noun fight has an obsolete sense as a mass noun referring to "The action of fighting". From an etymological standpoint, it seems that fight is originally a verb, and the nouns fight and fighting represent different deverbalizations. I don't know whether that is relevant to the meaning of the noun fighting.