Because:
1) localStorage is limited to 5-10MB depending on the user agent. You may need more!
2) localStorage only stores strings, and json stringification and parsing is way less efficient than just dealing with objects in indexedDB.
Plus, local storage doesn't support async operations; it's synchronous only.