I have not read Bergomi's book, but I have a lot of respect for his work and am in accord with the observations you have distilled from it. So, the points below might not quite agree with the reasons Bergomi himself had for making those statements:
Flexibility
When pricing exotics, we want a calibrated model that agrees with the volatility surface of non-exotic options, or at least comes close to no-arbitrage agreement. The Heston model does not have a lot of parameters, and there are many observable volatility surface shapes that can't be reproduced particularly well by any choice from the Heston parameter space.
I'm always torn by this kind of criticism, personally. Ultimately we fit the volatility surface in order to choose hedge parameters. A common "flexible" solution is local volatility models, and I think of those as mathematical artifice. They provide comfort via an illusion of exactitude, and I'm unconvinced their hedge parameters are very good.
Peculiarity
The forward surfaces of the Heston model do not look anything like volatility surfaces we observe in the wild. That is to say, if you take some future $(\tau; S, \nu, \xi)$ point, generate prices to some longer $T>t$, and look at the BSM-skew implied from there, it does not resemble a typical volatility skew.
Usefulness
Here my preference for a model with jumps comes into play. Even if we have the common case of an equity index underlying, you just need those jumps to get good skews in the short term. For this reason, I find Heston too limited.