I don't think there is a default report, but you could always create a query using the Stack Exchange Data Explorer.
I haven't got round to playing with this yet, but it looks like it has the potential to be a really useful and informative tool. There are a large number of queries already in the system, so you could probably modify something to meet your needs.
Top 100 Users by Bounties Received
The question Unidentified best bounty hunter? on Meta:SE includes a query that I copied and ran on History:SE:
SELECT Top 100
Posts.OwnerUserId As [User Link], COUNT(*) As BountiesWon
INNER JOIN Posts ON Votes.PostId = Posts.Id
This got the following results for an "All-time Bounties Leaderboard":
Restricting the date may be a little more tricky. I think I can restrict by the post creation date using something like:
votetypeid = 9 and creationdate between 'mm/dd/yyyy' AND 'mm/dd/yyyy'
(remembering to use the US date format), but, of course, a bounty could be awarded long after the actual post was created.
Top 100 Users by Bounties Offered
The pre-existing query Top 100 users ordered by offered bounties gets a list of the users who have offered the most bounties, and the total reputation offered in bounties:
I added a line to restrict the search to a particular date range (in this case I set it to be 1 January 2018 - 31 December 2018):
ROW_NUMBER() OVER (ORDER BY SUM(Votes.BountyAmount) DESC, Users.ID) AS rnSum
,ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC, Users.ID) AS rnCount
,SUM(Votes.BountyAmount) AS BountyOfferedTotal
,COUNT(*) AS BountyOfferedCount
INNER JOIN Posts ON Posts.ID = Votes.PostID
INNER JOIN Users ON Users.ID = Posts.OwnerUserID
Votes.BountyAmount IS NOT NULL
AND Votes.VoteTypeID = 8 -- BountyStart
AND Posts.PostTypeID = 1 -- Question
AND Votes.CreationDate between '01/01/2018' AND '12/31/2018'
ORDER BY BountyOfferedTotal DESC, Users.ID
This got the following result:
Changing the date range and re-running the query would then get you your year-by-year comparison.