I know this doesn't exactly answer your question, but perhaps you might consider using a different approach altogether.
Using while and until loops can get a bit confusing, and usually isn't the most performant way of doing things.
Maybe you would consider using recursion instead.
I've written a small script that seems to work :
class MyScrapper
  def initialize;end
  def call(keyword)
    puts "Please enter a valid search" && return unless keyword
    scrape({}, keyword, 1)
  end
  private
  def scrape(results, keyword, page)
    doc = load_page(keyword, page)
    return results if doc.css('div#noresults').any?
    build_new_items(doc).merge(scrape(results, keyword, page+1))
  end
  def load_page(keyword, page)
    url = "https://www.bible.com/search/bible?page=#{page}&q=#{keyword}&version_id=1"
    Nokogiri::HTML(open(url))
  end
  def build_new_items(doc)
    items = doc.css("ul.search-result li.reference")
    items.reduce({}) do |list, item|
      title = item.css("h3").text.strip
      content = item.css("p").text.strip
      list[title] = content
      list
    end
  end
end
You call it by doing MyScrapper.new.call("Keyword") (It might make more sense to have this as a module you include or even have them as class methods to avoid the need to instantiate the class.
What this does is, call a method called scrape and you give it the starting results, keyword, and page. It loads the page, if there are no results it returns the existing results it has found.
Otherwise it builds a hash from the page it loaded, and then the method calls itself, and merges the results with the new hash it just build. It does this till there are no more results.
If you want to limit the page results you can just change this like:
return results if doc.css('div#noresults').any?
to this:
return results if doc.css('div#noresults').any? || page > 999
Note: You might want to double-check the results that are being returned are correct. I think they should be but I wrote this quite quickly, so there could always be a small bug hiding somewhere in there.