Note this solution relies on QGIS calculating the polygon area, rather than utilising the area data contained within the attribute table already. If this would cause accuracy issues, you will require an alternative solution!
1) Processing toolbox > vector overlay > intersection
input layer = coral reef vector
intersection layer = grid square layer
2) vector geometry > dissolve
input layer = intersected layer from step 1.
Unique ID fields = the 'ID' field from your grid vector layer (which should now be one of the fields in your new 'intersection' output layer. This step faciliates an association between all polygons that fall within a given grid square ID.
3) Open the attribute table of your new 'dissolved' output layer, created by step 2.
Open 'Field calculator' > in the 'expression' builder, enter '$area' (without the inverted commas)
Tick box 'Create a new field'; enter a name for your new field column in 'output field name' ('Reef_area'?). Make sure to uncheck 'Only update selected features'. Execute.
Hope this resolves your problem. Good luck!