You use both ‘meta_key‘ and ‘meta_query‘ – it is a wrong usage. Remove this code:
'meta_key' => 'date',
and try again.
After remove $cat WP produce sql query:
SELECT SQL_CALC_FOUND_ROWS wp_posts.*
FROM wp_posts
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
WHERE 1=1
AND wp_posts.post_type="post"
AND (wp_posts.post_status="publish")
AND (
(
wp_postmeta.meta_key = 'date'
AND CAST( wp_postmeta.meta_value AS CHAR) >= '03-17-2012'
)
OR (mt1.meta_key = 'no-date' AND CAST(mt1.meta_value AS CHAR) = '1' )
)
GROUP BY wp_posts.ID
ORDER BY post_date desc
LIMIT 0, 10
If You have no results, check your data, because query is correct.