So if I am not mistaken, you have a DEM with some small holes in it... Maybe LiDAR data from some fly-by-night vendor? And you want to fill each hole with "reasonable" elevation values.
I think what you actually might want to do is for each little nodata hole, get the minimum elevation value (maybe the MEAN?) of a 1 cell buffer zone around each hole... each hole probably has a different elevation values surounding it, so you want to be sure to use the RegionGroup tool as well.
This expresion seemed to work for me... Just replace "my_grid" with the name of your DEM. It will produce a "no hole" DEM where each hole has the minimum elevation value of 1 pixel buffer surounding the hole.
Be aware that this expresion will also "fill in" no data areas on the periphery of your dataset as well, and that might not be desirable... The code to exclude these periphery areas would be more complicated... Otherwise you could also manually create a mask layer specifically showing the areas you intend to fill (edit the mask polygon so as to delete the periphery nodata areas).