There are a couple of issues at play.
First, on JRuby, pry ends up calling Pry::Method::WeirdMethodLocator#lines_for_file on the current working directory. This does not happen on MRI, so there is no error.
Second, lines_for_file (https://github.com/pry/pry/blob/v0.9.12/lib/pry/method/weird_method_locator.rb#L170-L177) calls File.readlines indiscriminately on a directory. This results in the error reported:
$ jruby -v; jruby -e 'File.readlines("/Users/asari")'
jruby 1.7.4.dev (1.9.3p385) 2013-03-01 e51d094 on Java HotSpot(TM) 64-Bit Server VM 1.7.0_13-b20 [darwin-x86_64]
Errno::EACCES: Permission denied - /Users/asari
initialize at org/jruby/RubyFile.java:334
open at org/jruby/RubyIO.java:1134
readlines at org/jruby/RubyIO.java:3717
(root) at -e:1
This should actually raise Errno::EISDIR instead, but that's for another ticket.
The logic behind the first issue is not clear to me, since I'm not familiar with the pry codebase. It may very well be that it is due to JRuby doing extra work, for example, for Java integration, and it is inevitable. If this is the case, then, pry needs to understand that it might end up calling File.readlines on a directory, and handle the error.