# Poisson regression intercept downward bias when true intercepts are small

When fitting a Poisson regression on data with low expected values, the intercept term has a small bias even when the model is perfectly specified. Below, I simulated data just using $$y \sim rPois(exp(\beta_0))$$ and then fit the data using the glm model $$log(E[y]) \sim \beta_0$$. On average, the estimates are slightly biased downwards. The bias is small, but I would like to understand why this happens.

I could understand why this would happen if $$\beta_0$$ was a large negative number and the data were mostly zeros, but the data from the $$\beta_0$$ values I chose is always mostly non-zero. Why would this happen?

# function to run the simulation for one set of beta values
run_sim <- function(b0, n = 50, R = 10000){

# simulate y values and then estimate
b0_estimates <- sapply(1:R, function(i){
y = rpois(n, exp(b0))
tmp = data.frame(y = rpois(n, exp(b0)))
mod_col <- glm('y ~ 1', data = tmp, family=poisson)