Pretty sure this is a
color constancy effect, where the argument is actually about the
illuminant (the color of the light shining on the dress). There must be ambiguous information in the image about what the illuminant was for the dress part of the scene.
If we assume a white illuminant, the dress looks blue and black (or some dark brownish color); if we assume a bluish illuminant, the dress looks white and gold: the white parts are just reflecting bluish light. Some viewers might be led into seeing the illuminant as bluish, despite the bright yellow/white background, because the dress seems to be in shade (maybe this is actually
because of the background being bright?); outdoor shade on a clear sunny day is bluish (the sky is blue), so maybe we all have a strong "shade is blue" prior when it comes to solving color constancy problems (you'd think there would be an obvious reference for that idea.. I can't find anything..).
Other viewers might see the whole scene as illuminated with white light (like sunlight, or lamplight), maybe similar with the background source; in that case, the blue tint of the dress isn't because it's in the shade - it's because it's reflecting only short wavelengths out of the white light and absorbing the rest (i.e. it's blue).
The gold/black relationship also fits this story: gold wouldn't reflect much blue light, so gold color will appear dark brown (and be interpreted as gold). But under white light, gold should be bright and shiny - it isn't in this picture, so if the illuminant is white, the best interpretation of the brown spots is that they are a dark color (black or brown).
I'm not a professional color guy, though, this is all just logic and guesswork... The real question is why different viewers default to such different assumptions about the illuminant, and I don't have even a good hand-wavy answer for that...
(for the record, first thing I saw: white and gold. then I covered the surround with my hands and focused only on the dress texture, and started to see it as bluish with black/brown stripes. now I can switch back and forth, heh.)
To add to this, the reason not everyone sees the same illusion for the dress is most likely due to the ambiguity of the lighting. The photo is back-lit, but you're also getting shadows falling across the front, so it's not clear to the visual system what the context is for the color. If you compare it to something like this, which is the same illusion:
https://phenomenalqualities.files.wordpress.com/2009/09/rubiks-cube-2.jpg
There is no ambiguity here with regard to the lighting. The square that looks orange looks orange to everyone because we are all seeing it in shadow. With the dress, some people are getting the illusion and others are not because of the interpretation of the lighting.
I personally think the bad camera quality is responsible for the black looking brown, which helps it look gold if you interpret a shadow falling across the dress. I suspect that adds to the image not looking white balanced.