Why is the distribution of mean firing rates assumed to be Gaussian?
The distribution is not Gaussian, it's Poisson, as noted in your question. However, outside of certain edge cases (e.g. when there are very few spikes, or very few trials), a Poisson Distribution with rate parameter $\lambda$ looks very like a Gaussian with both mean and variance equal to $\lambda$ (standard deviation $= \sqrt{\lambda}$). This is useful, because if you treat the distribution as a Gaussian, you can apply methods such as the t-test or linear regression, without being too far wrong.

Here's some R code that shows the correspondance between the Poisson and the Gaussian.

library(tidyverse)
x = seq(0, 30, 1) # Possible spike counts
poisson.density = dopois(x, 10)
gaussian.density = dnorm(x, 10, sqrt(10))
d = data.frame(x = x, Poisson=poisson.density, Gaussian=gaussian.density) %&gt;%
  gather(Distribution, Density, -x)
ggplot(d, aes(x, Density, color=Distribution, linetype=Distribution)) +
  geom_path() +
  theme(legend.position=c(1,1), legend.justification=c(1,1)) +
  labs(x='Spike count')