From help(dpois) it looks like you need x and lambda to be vectors (read more about object classes in the R Intro or any other R documentation to understand what this means).
The following works:
dpois(1:3, c(seq(0.1, 0.3, .1)))
Your first attempt fails because you are not concatenating (see: help(c)) the values for 0.1:0.3 into a vector and you are not providing any way for R to know what you want it to do with 0.1:0.3. Calling seq() in the manner above tells it to get a sequence from 0.1 to 0.3 by 0.1.
Your second attempt is pretty far into the weeds. There's no way you need a power-tool like do.call for this kind of thing.
dpois. It's more a question about creating vectors. – ashaw Feb 28 '11 at 16:49