The _internal logs do keep a track of the POST requests that ultimately install an app.
For instance this search will pick up the usernames and app names of apps installed through the "Apps > Find more apps online" section. ie apps installed from the in-product integration with Splunkbase.
index=_internal sourcetype=splunkd_access method=POST uri="/services/apps/remote/*" | transaction user maxpause=10sec | stats count by file user | search file!="login"
That search however will probably need some tweaking if you're also needing to track apps installed via "Manager > Apps > Install app from file".
However if you want to track apps installed via shutting Splunk down, manually copying in the app directory and starting Splunk, it would be tricky even to pinpoint the time at which a new app appeared. The best you could do would be to track the usage of all apps and thus find the earliest times each app had ever been used. You could draw a correlation to login times and get some good clues, but that's all they'd be.