This is because the button and the "popup" itself is inside the iframe
:

You'd need to switch to it prior to finding and clicking the button:
# switch to frame
frame = browser.find_element_by_css_selector("iframe[id^=sp_message_iframe]")
browser.switch_to.frame(frame)
# click the button
button = browser.find_element_by_css_selector("button.message-button.button-responsive-primary")
button.click()
# switch back to the default context
browser.switch_to.default_content()
Note that you may need to explicitly wait for the frame to appear to allow the page time to load and show the dialog in the frame:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox(executable_path='./geckodriver')
browser.get("https://www.finanzen.net/")
wait = WebDriverWait(browser, 10)
# switch to frame
frame = wait.until(
EC.visibility_of_element_located((By.CSS_SELECTOR, "iframe[id^=sp_message_iframe]"))
)
browser.switch_to.frame(frame)
# click the button
button = browser.find_element_by_css_selector("button.message-button.button-responsive-primary")
button.click()
# switch back to the default context
browser.switch_to.default_content()