まずはこちら、pryのデバッグを御覧ください。

[11] pry(#<BookController>)> a = Sentence.find_by book_id: 10                                                                                     
  CACHE (0.0ms)  SELECT  "sentences".* FROM "sentences" WHERE "sentences"."book_id" = ? LIMIT 1  [["book_id", 10]]
=> #<Sentence:0x000000036ebbf0 id: 1, text: "こんにちは", created_at: nil, updated_at: nil, user_id: 1, book_id: 10, sort: 1>
[12] pry(#<BookController>)> Sentence.find(:all, :conditions => { :book_id => 10 })
  CACHE (0.0ms)  SELECT "sentences".* FROM "sentences" WHERE "sentences"."id" IN (NULL, NULL)
ActiveRecord::RecordNotFound: Couldn't find all Sentences with 'id': (all, {:conditions=>{:book_id=>10}}) (found 0 results, but was looking for 2)
from /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.5/lib/active_record/relation/finder_methods.rb:324:in `raise_record_not_found_exception!'

このようにfind_bybook_idを指定すると見つかるのに、findで複数のレコードを条件付きで取得すると見つかりません。

ちなみに
Sentence.find(:all)
だと問題無く全Sentenceレコードが取得できます。
全く原因が分かりません。何かお気づきの方がいましたらご教授お願いいたします。