Equal to zone + 10 should actually be Speed >= Zone and Sped <= (Zone+10)
Everything else looks fine. If you need further help than the above, please upload a Tableau Packaged Workbook including sample data.
I've assumed your zone field contains the speed limit in that zone and that you want to bring back only the records where the speed is between that and 10 units above that then calculate the average?
The calculation you have provided would work in general except that you will likely get a lot of Null records back which will block the average calculation.
I would suggest creating a dimension first
if [Speed]<[Zone] then 'Under'
elseif [Speed]<([Zone]+10) then 'In'
Then using this on the columns shelf and ID on the row shelf simply average the speed?
If you have a dummy dataset we could work on it may help to see it?