Background app refresh is a background execution mode known as 'fetch'. The app is not running in the background all the time, iOS will need to wake it up for this mode, they cannot wake themselves up. iOS has a slew of criteria for determining when and how often to launch an app in the background.
The impact on battery is typically minimal due to the criteria iOS uses to launch an app in the background.
Firstly, an app has 30 seconds to refresh its data before iOS suspends the app. Secondly, the more time, battery and data the app uses (or if its suspended from not completing or from not telling iOS its complete) the less iOS will allow that app to refresh in the background. And third iOS uses predictive usage, so if you check a social media app every day around 8, it might refresh it at 7:50.
Clearly there is an impact in battery life however it SHOULD be minimal. There are exceptions though, however they are generally obvious. Background fetch can be used to initiate other APIs for downloading a large file through system built into iOS. Again though, if you are syncing all your photos to dropbox you shouldn't be surprised power and data were consumed.
Background app refreshes 'fetch' mode is one of nine background execution modes and is one of the least power hungry modes.
Like mentioned try turning it on for a few days/weeks and then turn it off for a few days/weeks and decide for yourself.