1) Dish soap's molecules are non-polar and water`s molecules are polar.
2) Milk has lots of fat (non-polar molecules)
3) "Like dissolves like" (basic chemistry anyone?) Non-polar soap is attracted to non-polar fat. The dyes get swirled around by the attraction between the soap and fat.
4) Density has nothing to do with it. The dyes are just there for aesthetic purposes. The colors add nothing to the chemical reaction going on here.