The option to change teams is requested so frequently that Niantic has this on their support page:
Speculation on why changing teams is not allowed mainly seems to focus on potential abuse of the system.
I propose that allowing trainers to change teams, one time, during a 24 hour window of equinox events is a possible solution.
An equinox is a time of change, so it seems to fit the theme perfectly. Also, limiting the opportunity to 24 hours twice a year would seem to eliminate concerns about “hopping” or other abuse.