Persoonia lanceolata is found along coastal and near-coastal areas of New South Wales east of the Great Dividing Range, from Trial Bay on the Mid North Coast to Sassafras Morton National Park in the south. Its habitat extends to dry sclerophyll forest and heathland on sandstone-based soils low in nutrients, particularly on the tops of ridges and slopes. Examples in more sheltered areas are often taller than those in more exposed areas. P. lanceolata is found from sea level to an altitude of , and the annual rainfall of the area it occurs in the Sydney Basin is . The species is considered adequately protected in the Sydney region and is found in Bouddi, Brisbane Water, Marramarra, Ku-ring-gai Chase, Lane Cove, Sydney Harbour and Botany Bay National Parks. In heathland habitats, P. lanceolata grows with such species as Banksia ericifolia, B. oblongifolia and Darwinia fascicularis. In more forested areas it is an understory shrub alongside Lambertia formosa, Leptospermum trinervium, Daviesia corymbosa, Banksia serrata and B. ericifolia under such trees as Eucalyptus sclerophylla, E. piperita, E. sieberi, E. sparsifolia, E. punctata and Corymbia gummifera.