f it were me, I'd choose stain, plus a satin polyurethane... which will give the best protection against future "wear".
Yes except polyurethane can be scratched, and once its scratched, it cannot be repaired without refinishing the entire stock. IMHO Polyurethane is the worst thing you can put on a fine piece of wood.
Tru-Oil will give a finish similar looking to polyurethane, but you can touch it up very easily if it gets scratched.
The ultimate finish if its a nice piece of wood would be the French Polish method which involves wiping on a thinned shellac/oil mix in several coats- its absolutely brings out the beaty of wood, and is easily repaired/ touched up.