I have a multi-site setup with three themes. They look the same, but they are different in colors. What are best practices to setup my theme structure, in themes/custom/site1, site2, and site3, or in sites/site1/themes, sites/site2/themes, and sites/site3/themes?
If they only differ in color, you should provide a theme setting for choosing it and setup the theme in
/themes/custom/mymulticolortheme, so it will become available for all sites. Otherwise you have to maintain multiple nearly identical themes, which is a time killer when you have to fix a bug or add a feature.
If you have different themes for each site you should place each theme in the particular site theme folder like
/sites/site2/themes/custom/mytotalydifferentthemeforsite2 etc., so that they are only available for sites they belong to.