The colors represent the level of the residual for that cell / combination of levels. The legend is presented at the plot's right. More specifically, blue means there are more observations in that cell than would be expected under the null model (independence). Red means there are fewer observations than would have been expected. You can read this as showing you which cells are contributing to the significance of the chi-squared test result. For more information, it may help to read the Residual-based Shadings in vcd vignette (pdf) from the vcd package.