According to the Merriam-Webster dictionary, a dogfight means:
1 : a fight between dogs
broadly : a fiercely disputed contest
2 : a fight between two or more fighter planes usually at close quarters
But dog fighting is not defined in the same dictionary but in a wiki as:
a type of blood sport generally defined as two or more game dogs against one another in a ring or a pit for the entertainment of the spectators or the gratification of the dogfighters, who are sometimes referred to as dogmen.
Is there any reason for using the -ing form fighting for the latter while using the base form fight for the former?
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.