A soap film is so thin that the wavelength of visible light is comparable and this causes iridescence -- light is reflected from both the inner and outer surface of the film . But it is not perfectly uniform, and at any time, consists of an ever changing thickness as wind currents and gravity disturb the molecules. Each thickness refracts light differently, sending various wavelengths into your eye, while others head off into a different direction, so your viewing angle is what affects the colour you see from any particular place in the bubble. The light before it is refracted is 'white light' -- that is, consists of all visible colours (and more), and the light that leaves does so spread out spatially. For this reason, from any particular viewing angle, you see several colours, and these move about as the thickness is not constant in time.
Because its film is thinner at some places than at others, and different thicknesses reflect different colours. The black parts are the thinnest, and reflect no light at all. They have been found to be only one three-millionth part of an inch thick.