Is it better to limit the scope?
In a word yes.
There are a couple of differences between the two examples that you posted
$('#section').on('click','.target',function(){~})
This will register a handler against #section
that will be fired whenever a it is clicked but your handler will only be called on a .target
if that was actually clicked.
$('.target').click(function(){~})
Which is equivalent to
$('.target').on('click', function(){~})
Will only be registered for .target
that were in the DOM at the point that the handler was registered anywhere in the page.
From a performance perspective you should limit scope to elements that are on the page when the handler is registered. If it makes sense in your particular scenario.
$('#section .target').on('click', function(){~})