There are two possibilities. The first, and most obvious, is that it is a bug. I looked up the documentation for poisson.testpoisson.test
in R and, originally, it was a one-sided test. It did not support two-sided tests. The second would be that the p-value and the interval are using different loss functions, but I would suspect that is not the case. You should submit a bug report.