My three year old has a small cavity in his molar. Brushes teeth regularly. What would cause this?

Regardless of cause. untreated tooth decay in the primary teeth will increase the probability of problems in the permanent dentition. See a pedodontist for consultation and parents education session. Do not delay.
Acid. Acid from bacteria that get stuck in pits and fissures will cause cavities. His diet and how well and thoroughly he brushes may also play a role. You've assumed that brushing regularly prevents cavities... it helps tremendously, but it's not a guarantee.
Brushing not enough. Cavities caused by bacteria turning sugars/starches into acid, and the a acid makes holes in the teeth. Do you limit sugars/starches in your child's diet? Does child have a 2 minute timer for brushing? Regular not good enough if teeth not cleaned properly. Do you supervise their brushing to make sure all areas are reached? Floss? Fluoride? See your dentist for instructions and supervise child.
Many Reasons. It's great that you have him brush his teeth regularly, but there are other factors. Cavities are usually caused by the type of food, especially foods rich in sugar and certain carbs and starches. Bacteria love this type of food and they produce acids which will eventually cause cavities or dental caries. Best to take care of the cavity right away when it is small.
Several possibilitie. The tooth may not have formed perfectly, even with brushing regularly decay may occur depending on eating and drinking habits. I would discuss this with your dentist who knows the particulars of your three year-old.