The only two ways to earn V-Bucks without paying real money is to play the PVE mode Save the World, or get them from the Battle Royale mode in the free pass.
You can unlock Save The World for $40(USD) but according to Epic it will be free to play sometime in 2018. While you may say “I can buy 2000 V-Bucks for that!,” you’ll be able to keep earning V-Bucks for free long after you’ve made back your initial downpayment.
V-Bucks are shared across your account, so any currency you earn in Save The World can be used at your discretion in Battle Royale as well!