By default, R uses dummy variable coding for encoding categorical variables and your output reflects that. What that means is that R sets aside one category (the one which is missing from the model output) and then compares the remaining categories against it. You could spell out your model "by hand" from the R output to better understand what it looks like.
To do that, note that:
ecoregionAtlantic = 1 when ecoregion = Atlantic and 0 otherwise
ecoregionCanary = 1 when ecoregion = Canary and 0 otherwise
ecoregionMediterranean = 1 when ecoregion = Mediterranean and 0 otherwise
All the variables defined above are dummy variables.
Then go through all possible cases and "spell out" the model:
1) ecoregionAtlantic = 0, ecoregionCanary = 0, ecoregionMediterranean = 0
(this tells you what the model looks like for the region that was set aside, Alboran)
2) ecoregionAtlantic = 1, ecoregionCanary = 0, ecoregionMediterranean = 0
(this tells you what the model looks like for the Atlantic region)
3) ecoregionAtlantic = 0, ecoregionCanary = 1, ecoregionMediterranean = 0
(this tells you what the model looks like for the Canary region)
4) ecoregionAtlantic = 0, ecoregionCanary = 0, ecoregionMediterranean = 1
(this tells you what the model looks like for the Mediterranean region).
For the region that was set aside (Alboran), all dummy variables are set to zero, so the right side of the model reduces to intercept + slope of proteccionunprotected * proteccionunprotected.