You used the wrong entity name. A hanging itemframe is not called ItemFrame but [item_frame][1].

So, the following command would work:

```
/testfor @e[type=item_frame,r=10] {Item:{id:minecraft:writable_book,tag:{display:{Name:"Keys"}}}}
```

Please note: this command checks the name given to an item. You are essentially looking for a writable book that has been [renamed using an anvil][3].
If your goal is however to check for a closed book with a title you should use the following command:

```
/testfor @e[type=item_frame,r=10] {Item:{id:minecraft:written_book,tag:[{title:Keys}][2]}}
```

  [1]: https://minecraft.wiki/w/Data_values/Entity_IDs
  [2]: https://minecraft.wiki/w/Player.dat_format#Written_Books
  [3]: https://minecraft.wiki/w/Player.dat_format#Display_Properties