Lets chat about this in context.
It's a white garden. It is full of life while honoring the passing of a life.
If you look at the guys (again, I'm writing about the context of her choice), William is in a cream sport coat and Harry is in the rare (on him) not dark grey. They are not in dark colors - they are in what is for them, BRIGHTS! They are also both casual and open necked. They are honoring life moving forward in their choice of dress.
Catherine chose a not traditional garden print in what is for her a BRIGHT. It's respectfully cut/worn and however we all may hate this button-up-bow-neck-shirt-dress-look, it is all over the runways - esp. in Europe, though with some US designers, too. It is pretty and full of life.
Given what the guys were in - what would you expect her to wear? Pants and a blazer? A sleeveless something or other? A repeat (the headlines would scream, "Kate wears old frock to not-honor the People's fashion princess!")
I loathe shirt dresses and hate neck bows more. I am no longer a fashionista and only look at 8-10 collections a season. Even I understand why this fits the context of the event.
She is no longer 28 - she's a 35 year old woman and a mom of two. She's going to wear this kinda stuff because it is the uniform. And though I try really hard to not compare royals, a Mom of two Scandinavian royal only 5 years Catherine's senior is rocking the bow necked shirt dress these days.