i think they are basically interchangeable. Looked up some dictionaries, they did not indicate that 毛病is informal at all. It is not in my experience either. Further, i don't think there're anything wrong with saying 他的理论/思想有毛病。
I will translate 毛病 into defects and 问题 into problems and I feel personally i tend to avoid saying someone has 毛病,it sounds a little bit arrogant while 问题 is softer. Is it the same with the english expressions defects and problems? I'm not sure but I'd feel more comfortable to say to my boyfriend "you have a problem" rather than "you have a defect". could be misunderstanding for sure.
ah, you can also use 问题 in this way: 健康问题;生机问题. 问题here means issues. "personally, i won't say 健康有问题either" 健康just don't sound it collocate with 问题' but I could be wrong!