The first one became available with Oracle 11g, prior to that you had to SELECT seq_name.nextVal FROM dual
. What is the difference? Well, the first one is easier to read in my opinion.
What is more, Tim Hall on his site wrote that, according to documentation, the first (new) approach can improve performance. He performed some tests, but the difference was marginal.
Read more on Tim Hall's site: Sequences and NEXTVAL in PL/SQL
On the other hand, as stated here About using NEXTVAL in PL/SQL - Oracle 11g, the underlying implementation of fetching the nextVal
value hasn't changed, so in fact there should be no difference.