When you reach Great Buddy rank with your chosen Pokémon Buddy in Pokémon GO, you have a chance to receive gifts from them. Make sure you have the second heart under their name when viewing their Friend profile before trying to search for gifts.
Your friend will randomly find these gifts as you explore the world. To make sure they have a chance to find them, you need to make sure their stomach is full in the lower left corner of the screen. If it's empty, you won't see them flying around your Trainer Avatar and you'll need to feed them Berries.
You will see a small gift wrapped under their Buddy avatar on the Buddy Profile page. To receive the gift, you must "play" with them in AR mode.
When you first reach Great Friend status, your Pokémon should immediately have one to discard. The items within these gifts vary between berries and useful or even revive potions.
Many editors believe that you can only receive one gift from your friend per day, just as another friend is able to send you only one per day. If you have multiple Pokémon with the rank of Great Buddy or higher, you may receive numerous gifts because you can receive 20 gifts a day from all of your friends. The system can work in the same way, but this is not confirmed.
There are ways to quickly raise your friend's rank, like getting them horny or giving them a Poffin. You will need to spend time with your friend and strengthen your relationship with them.