Grammatically, there is nothing inherently wrong with have put. It's not "wrong," it's just a bit "unnatural."
Let's say you and I are planning a big party for the weekend, and we want to serve frozen candy bars. You might say:
Did you put candy bars in the freezer?
And I might answer:
Yes, I've put the candy bars in the freezer.
I also might answer:
Yes, I put the candy bars in the freezer.
Or even:
Yes, the candy bars have been put in the freezer.
But I'm having trouble imagining myself saying:
Yes, I have put the candy bars in the freezer.
The have can be contracted, omitted, or used in the passive voice, but, for some reason, "I have put something in some location" sounds a bit stilted, just as the comment says. (Figuring out why, though, is a tough nut to crack.)
I went onto Google books and searched for "I have put the"
. A few hits were from older sources (such as the Bible), and they sounded decidedly uncontemporary:
I have put the Lord before me at all times
Others sounded okay to me, but I noticed they were using the verb put to mean something other than the simple act of physically moving something from one place to another; for example:
I have put the lines in a footnote to facilitate the flow of the argument.
I have put the picture on the wall...
I have put the microphone back together...
I have put the entire event behind me.
I did find this one:
I have put the eggs in the icebox to save them for your return.
which uses the same grammatical structure as your sentence – but, to be honest, it sounds stilted, too. If I was writing that note to my kids, I'd say:
I've put some eggs in the fridge to save them for when you get back.
I don't know if this answer will be helpful or not. I've put some ideas into words, but I haven't managed to definitively answer the "why" question.