The solution is simple, adds (0,0)to the vertices of the polygon . See below:
x <- seq(0,50,0.01)
y <- dexp(seq(0,50,0.01),rate=0.11)
plot(x, y, type="l", col=col2rgb("yellow",0.5), xaxs="i", yaxs="i", ylim=c(0,0.15))
polygon(c(0, x), c(0, y), border=NA, col=col2rgb("yellow",0.5))

How polygon()does it work
polygon() . , (0, 0) , . :
x0 <- c(0, 0.5, 1.5)
y0 <- c(1.5, 0.5, 0)
plot(x0, y0, pch = ".")
polygon(x0, y0, col = "red", border = NA)
polygon(c(0, x0), c(0, y0), col = "yellow", border = NA)
